网站首页
关于我们
主机分类
解决方案
云计算研究
资源下载
云计算教程
留言反馈
联系我们

解决方案

当前位置:主页 > 解决方案 >

RSA加解密简介

发布时间:2017-12-09 11:34

最近在项目中用到RSA算法,特地分享下。
    RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。1987年首次公布,当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。
今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。但在分布式计算和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战。
RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
 
    RSA是公钥加密,私钥解密,所以,在数据传输的时候,先用公钥加密,数据传到服务器上,再用私钥解密。虽然公钥是可以公开的,但我们总不能把它直接放客户端吧,于是,在加密前,先向服务器发送一次请求,获取公钥,再加密,然后传输,这样达到加密传输的目的,你可以能会问,为啥不把公钥直接放客户端,我只能说,能不公开的尽量不要公开。
传输加密,也有多种方式,比如比较常用的是https,也就是SSL协议传输,但是SSL协议,是要花银子的,对于我们普通人来说,不是最好的方式,毕竟费用不简单。
 
    在实际中遇到一个问题,先将密码用sha1加密,再用RSA加密,再到服务器,但是当传到服务器之后,发现无法解密,研究了一个上午终于解决,JS版的SHA1加密后,得到的并不是一个字符串,可能是一个对象,将得到的转换为字符串,最后才成功的。
 
    经测试,发现RSA加密时有长度限制的,一般为117个字符,本人试验,超过117之后,不能正常解密。
    在没有条件使用https的时候,RSA是不错的选择,像登陆等地方使用,使得我们的系统安全性增加了一层。
    更多关于RSA知识,有兴趣的可以执行研究,有时间也会再分享。
 

上一篇:没有了

下一篇:MySQL Cluster介绍

返回列表
网站地图|百度云Windows 2012 如何安装| Linux安装Chrome方法