RSA公钥加密算法是1977年由罗纳德·李维斯特(RonRivest)、阿迪·萨莫尔(AdiShamir)和伦纳德·阿德曼(LeonardAdleman)一起提出的。1987年7月首次在美国公布,当时他们三人都在麻省理工学院工作实习。RSA就是他们三人姓氏开头字母拼在一起组成的。
JS中使用RSA加密信息
加密重要信息,如用户名、密码。防止http拦截。浏览器使用公钥加密,服务器端使用私钥解密
页面添加引用:jsencrypt.min.js
//3-Url参数加密类
if(window.JSEncrypt){
functionInitJSEncrypt(){
var_this=this;
varencrypt;
_this.init=function(){
encrypt=newwindow.JSEncrypt();
encrypt.setPublicKey('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');//替换公钥
};
_this.getEncrypt=function(){
if(encrypt==null){
_this.init();
}
returnencrypt;
};
};
$.extend(window.JSEncrypt,newInitJSEncrypt().getEncrypt());
}
//加密用户名密码
varencryptedEmail=window.JSEncrypt.encrypt(email);
varencryptedPass=window.JSEncrypt.encrypt(password);
RSA是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。但在分布式计算和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战和质疑。