查看: 583|回复: 1

使用远程函数进行数据加解密

[复制链接]

3

主题

4

帖子

27

积分

梦之始

Rank: 1

积分
27
发表于 2019-11-3 18:39:14 | 显示全部楼层 |阅读模式
本帖最后由 rctess 于 2019-11-3 19:24 编辑

代码使用了crypto-js库进行加解密,该库文件已被下载到modules文件夹
RC4:
  1. function RC4_encrypt(data,key){
  2.     const crypto=require("crypto-js");
  3.     let ret=crypto.RC4.encrypt(data,key);
  4.     return ret.toString();
  5. }
  6. function RC4_decrypt(data,key){
  7.     const crypto=require("crypto-js");
  8.     let ret=crypto.RC4.decrypt(data,key);
  9.     return crypto.enc.Utf8.stringify(ret).toString();
  10. }
复制代码

AES:
  1. function AES_Encrypt(data,key,iv){
  2.     const crypto=require("crypto-js");
  3.     iv=crypto.enc.Utf8.parse(iv) || crypto.enc.Utf8.parse('0110001100001011');
  4.     return crypto.AES.encrypt(data, crypto.enc.Utf8.parse(key), {iv: iv,mode: crypto.mode.CBC,padding: crypto.pad.Pkcs7}).toString();
  5. }
  6. function AES_Decrypt(data,key,iv){
  7.     const crypto=require("crypto-js");
  8.     iv=crypto.enc.Utf8.parse(iv) || crypto.enc.Utf8.parse('0110001100001011');
  9.     return crypto.AES.decrypt(data, crypto.enc.Utf8.parse(key), {iv: iv,mode: crypto.mode.CBC,padding: crypto.pad.Pkcs7}).toString(crypto.enc.Utf8);
  10. }
复制代码

crypto-js加解密库同时支持多种加解密算法,本示例仅演示远程函数部分所使用的nodejs代码进行加密/解密的基础操作。
利用crypto-js库可以对云端数据及本地数据进行动态加解密,在一定程度上可以有效防止程序被破解。



回复

使用道具 举报

3

主题

4

帖子

27

积分

梦之始

Rank: 1

积分
27
 楼主| 发表于 2019-11-3 20:02:12 | 显示全部楼层
本帖最后由 rctess 于 2019-11-3 20:07 编辑

可以利用传入的数据的MD5/base64作为秘钥进行使用以提高安全性
代码示例:
  1. function test(random,data){
  2. const crypto=require("crypto-js");
  3. let array=random.split('');
  4. var ret='',i,k;
  5. for(i=0;i<16;i++){
  6. k=i%array.length
  7. ret+=array[k];
  8. }
  9. let key=crypto.enc.Utf8.parse(crypto.MD5(ret).toString());
  10. return crypto.AES.encrypt(data, crypto.enc.Utf8.parse(key), {iv: crypto.enc.Utf8.parse(ret),
  11. mode: crypto.mode.CBC
  12. ,padding: crypto.pad.Pkcs7}).toString();
  13. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表