您的位置 首页 php

数据安全规则之Go/Js/PHP通用AES加解密算法


范围

针对现有注册登录、第三方集成及信息收集类业务提出如下规范,需要产品经理或开发负责人务必担高重视。

信息收集/注册

因业务需要进行用户信息或敏感信息的收集,从产品设计角度,务必以下几点提高警觉,引起重视。

  1. 进行账号注册或用户信息收集(薅羊毛等)涉及信息收集,务必保证用户信息最小化,无论自动收集频率还是用户信息数量,并明示信息的用途,不得违背用户自主意愿。所收集的信息保证用户可主动修改信息、关闭或退出业务、取消授权等操作的途径。
  2. 所有同意授权必须用户主动填写、点击,勾选等操作,并不得一次性授权同意多个业务收集用户信息。
  3. 对收集用户敏感信息时,务必明示同意,并明确逐一说明为完成的业务功能
  4. 用户用户若不同意提供,不可频繁出现征求同意
  5. 未满14周岁,应征得监护人明示同意
  6. 所有信息收集/注册,务必明示隐私政策
  7. 业务系统不再运营时,应及时停止信息收集注册

用户信息保存及使用

用户信息可参考 附录1 及附录2 分为 用户基本信息和用户敏感信息。

信息泄露处理

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

用户信息泄露,还应以邮件、信函、电话或推送通知等方式告知,明确说明事故的内容和影响,并将已采取及补救的措施一一告知。

附录 1.用户信息

f4be2ef0-b9c0-44f9-9ff9-cefd1f2cc2df

附录 2.用户敏感信息

7a6adf63-3097-41b0-92f3-c2826cf8ce68

附录 3.加密参考

69d75ade-d8c3-43c8-ad02-fd9800ea4668

去标识化方法

4b20d5c7-699b-42c6-8e51-de5c9c438324

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> 

文章来源:智云一二三科技

文章标题:数据安全规则之Go/Js/PHP通用AES加解密算法

文章地址:https://www.zhihuclub.com/30067.shtml

关于作者: 智云科技

热门文章

网站地图