用户基本信息:附录1中所提到的所有属性,务必做好去标识化处理,去标识化的可参考下面几点成分:是否可删除、是否须要保持唯一性、是否须要知足可逆性、是否须要保持原有数据值顺序、是否须要保持原有数据格式、是否须要保持统计特色、是否须要保持关系型数据库中的实体完全性、参照完全性或用户自定义完全性等。
一样平常地,对直接标识符要优先选择删除或屏蔽的处理办法。

用户敏感信息:用户敏感信息务必担保在网络后,网络传输中及数据库存储切为已加密的数据。

对付去标识化,可采取变换方法(参考附录3)。

aes解密php数据平安规矩之Go/Js/PHP通用AES加解密算法 Node.js

系统前后台,对敏感信息无论展现还是网络传输,必须做好去标识化处理,批量修正、拷贝、下载等务必严格走审批流程,禁止私自处理。

个性化展示、推送等精准定位做事,务必支持用户主动退出或取消推送等功能。

在网络利用用户信息的同时,应该建立合理的申拆机制及流程,针对用户反馈及时反馈。

信息透露处理

对用户信息等敏感类的数据保护供应应急预案,对付每次的信息透露详细记录并通报,引起大家的重视。

用户信息透露,还应以邮件、信函、电话或推送关照等办法奉告,明确解释事件的内容和影响,并将已采纳及补救的方法逐一奉告。

附录 1.用户信息

附录 2.用户敏感信息

附录 3.加密参考

去标识化方法

GO\JS\PHP通用加密实现

加密与解密操作三种措辞通用,不用再花精力去测试aes加密的措辞差别。

Go代码实现(ace.go源文件可留言获取):

var data = "111111"var key = "2100298351"var iv = "A8WM6KU969EW"objEncrypt := encrypt.NewAes256(key, iv)// 加密pass,err := objEncrypt.AesEncrypt(data)// err 处理// 解密source, err := objEncrypt.AesDecrypt(pass)// err 处理

php参考:

$data = "111111"; //待加密数据$key = '2100298351'; // 加密$iv = 'A8WM6KU969EW'; // $method = 'aes-256-cbc'; $key256Bits = hash_pbkdf2("sha256", $key, "secret", 1000, 64, 0);$iv256Bits = hash_pbkdf2("sha256", $iv, "secret", 1000, 32, 0);$e = openssl_encrypt($data, $method, hex2bin($key256Bits), 0, hex2bin($iv256Bits)); echo '加密: [', bin2hex(base64_decode($e)), "]\n"; echo 'Key: [', $key256Bits, "]\n"; echo '解密: [', openssl_decrypt($e, $method, hex2bin($key256Bits), 0, hex2bin($iv256Bits)), "]\n";

JS参考(aes.min.js源代码可留言获取):

<html><head><script src = "aes.min.js"></script><script> //(须要先加载aes.min.js文件)// 建议此文件须要稠浊源代码 // AES 秘钥var AesKey = "2100298351"; // AES-128-CBC偏移量var CBCIV = "A8WM6KU969EW"; // 加密选项var CBCOptions = { iv: CryptoJS.enc.Utf8.parse(CBCIV), mode:CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7} / AES加密(CBC模式,须要偏移量) @param data @returns {} /function encrypt(data){ var key = CryptoJS.enc.Utf8.parse(AesKey); var secretData = CryptoJS.enc.Utf8.parse(data); var encrypted = CryptoJS.AES.encrypt( secretData, key, CBCOptions ); return encrypted.toString();} / AES解密(CBC模式,须要偏移量) @param data @returns {} /function decrypt(data){ var key = CryptoJS.enc.Utf8.parse(AesKey); var decrypt = CryptoJS.AES.decrypt( data, key, CBCOptions ); return CryptoJS.enc.Utf8.stringify(decrypt).toString();} console.log(encrypt("111111"))</script></head><body></body></html>