关于web开发安全算法之非对称加密算法

非对称加密算法

非对称加密算法又称为公开密钥加密算法,它需要两个密钥,一个称为公开密钥 (public key), 即公钥;另一 个称为私有密钥 (private key), 即私钥。公钥与私钥需要配对使用,如- 用公钥对数据进行加密,只有用对应的私钥才能进行解密,而如果使用私钥对数据进行加密,那么只有用对应的公钥才能进行解密。因为加密和解密使用的是两个不同的密钥,所以这种算法称为非对称加密算法。

非对称加密算法实现机密信息交换的基本过程是

甲方生成一 对密钥并将其中的一把作为公钥向其他人公开,得到该公钥的乙方使用该密钥对机密信息进行加密后再发送给甲方,甲方再使用自己保存的另一把专用密钥(即私钥)对加密后的信息进行解密。

非对称加密算法的特点:对称加密算法中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥,所以保证其安全性就是保证密钥的安全,而一旦密钥在传输过程中泄露,加密信息就不再安全。

非对称加密算法能够保证,即使是在获知公钥、加密算法和加密算法源代码的情况下,也尤法获得公钥对应的私钥,因此也无法对公钥加密的密文进行解密。

当前使用最为广泛的非对称加密算法非RSA莫属。

1.RSA算法

RSA非对称加密算法是在1977年由RonRivest、AdiShamirh和LenAdleman开发的,RSA取名来自他们三者的名字。RSA是目前最有影响力的非对称加密算法,它能够抵抗到目前为止(2016年)已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论巾实:将两个大素数相乘十分容易,但反过来想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。


首先初始化KeyPairGenerator, 并生成KeyPair, 得到KeyPair后,便可以通过getPublic与getPrivate分别取得公钥和私钥。为了方便保存(比如将相应的密钥存入数据库),可以使用Base64编码将其转换为String类型的打印字符。


转换之前,先对字符串进行Base64解码,公钥需要先转换成X509EncodedKeySpec对象,然后通过KeyFactory生成PublicKey对象,而私钥需要先转换成PKCS8EncodedKeySpec对象,丙通过KeyFactory生成PrivateKey对象。

待续。。

摘自:
《大型分布式网站架构设计与实践》 阅读笔记

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 姓名:于川皓 学号:16140210089 转载自:https://baike.baidu.com/item/RS...
    道无涯_cc76阅读 7,600评论 0 1
  • 概述 之前一直对加密相关的算法知之甚少,只知道类似DES、RSA等加密算法能对数据传输进行加密,且各种加密算法各有...
    Henryzhu阅读 8,266评论 0 14
  • 数字证书原理 - 无恙 - 博客园 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明...
    拉肚阅读 5,623评论 0 3
  • 高级 双保险 公钥,私钥 DH 密钥交换算法(是非对称加密的起源) RSA 基于因子分解(应用范围最广,既能用于数...
    _爱笑的eyes阅读 10,428评论 0 1
  • 一、什么是对称加密技术? 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥。信息接收双方都需...
    Djbfifjd阅读 6,671评论 2 8

友情链接更多精彩内容