cryptico.js使用
2016-09-11 10:58
274 查看
cryptico.js这个加密算法库很全,很适合在前端用到各种加密解密算法的需求。但是美中不足的是,它的RSA加密不支持PEM格式,所以如果你后端用java或者python生成的公钥不能直接用PEM的base64格式传给前端进行加密。
使用的时候这样使用:将
解决办法:
解决办法就是在后端提取出来n和
e这两个数,转成16进制之后传给前端,然后人为修改cryptico的两个函数:
var publicKeyFromString = function (string) { var tokens = string.split("|"); var N = tokens[0]; console.log(N); var E = tokens.length > 1 ? tokens[1] : "03"; var rsa = new RSAKey(); rsa.setPublic(N, E); return rsa }; cryptico.encrypt = function (plaintext, publickeystring, signingkey) { var cipherblock = ""; try { var publickey = publicKeyFromString(publickeystring); cipherblock += cryptico.b16to64(publickey.encrypt(plaintext)); } catch (err) { return {status: "Invalid public key"+" "+err}; } return {status: "success", cipher: cipherblock}; };
使用的时候这样使用:将
n和
e用
|分隔作为
publicKeyString
var publicKey = "{{n}}|{{e}}"; var encrypted = cryptico.encrypt("plaintext", publicKey); console.log(encrypted.cipher);`
后话:
当然了,这里的encrypt函数修改的有点太粗暴了,还漏了
signingkey参数处理的部分,读者自己参考
cryptico.js源码改吧!
相关文章推荐
- cryptico.js使用技巧
- 在ascx中使用js做验证时需要注意的小地方.
- 使用JS+XML(数据岛)实现分页)
- 使用js构造函数构造文档对象
- 如何使用C#在发送往client的内容上加js代码(转)
- JSUnit使用说明
- [转]prototype.js开发笔记(针对Ajax的JS框架Prototype的使用介绍)
- 使用js脚本如何进行客户端验证时出现乱码怎么办?
- 有关打印、收藏等的JS代码(打印等主要使用了一个IE组件来实现)
- 在IE 和 Firefox 中兼容使用js
- 使用js脚本定时更新页面的方法
- 我的第一段未使用 document.all.obj 的JS
- 使用JS创建虚拟目录,并引导进入浏览
- 如何使用C#在发送往client的内容上加js代码(转)
- 使用 this 指针和 prototype 实现 js 的 OO 时的一个区别
- jsp中,使用js生成动态的数据库相关的二级联动下拉框
- JS中的正则表达式小小的技巧---Test方法的使用
- .net下导致Session失效的一种情况:js教本中使用window.open和window.showModalDialog时需要注意
- 使用js递交面面数据
- 控件开发时两种JS嵌入资源方式的使用