java js 加密解密算法_JS自己实现字符串加密和解密算法

字符串加密和解密的关键是算法设计,字符串经过复杂的编码处理,返回一组看似杂乱无章的字符串。对于常人来说,输入的字符串是可以阅读的信息,但是被函数打乱或编码之后显示的字符串就会变成无意义的信息。想要把这些垃圾信息变成可用信息,还需要使用相反的算法把它们逆转回来。

如果把字符串中的“中”字进行自定义加密。可以考虑利用 charCodeAt() 方法获取该字符的 Unicode 编码。

var s = "中";

var b = s.charCodeAt(0); //返回值20013

然后以 36 为倍数不断取余数。

b1 = b % 36; //返回值33,求余数

b = (b - b1) / 36; //返回值555,求倍数

b2 = b % 36; //返回值15,求余数

b = (b - b2) / 36; //返回值15,求倍数

b3 = b % 36; //返回值15,求余数

那么不断求得的余数,可以通过下面公式反算出原编码值。

var m = b3 * 36 * 36 + b2 * 36 + b1; //返回值20013,反求字符“中”的编码值

有了这种算法,就可以实现字符与加密数值之间的相互转换。

定义一串密钥:

var key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

把余数定位到与密钥中某个下标值相等的字符上,这样就实现了加密效果。反过来,如果知道某个字符在密钥中的下标值,然后反算出被加密字符的 Unicode 编码值ÿ

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值