Java中的常见加密

0=## 加密方式

  • 加密的方式一般有两种方式:
    • 对称加密: 加密和解密的规则相同;
    • 非对称加密: 加密和解密的规则相同;

非对称加密算法(公钥加密算法)

  • 甲方生成一个公钥和一个私钥, 并将其中的共钥向公开, 私钥存储在本地, 得到该公钥的乙方使用该密钥对机密信息进行加密后再发送给甲方, 甲方再用自己保存的私钥对加密后的信息进行解密。
    • 优点: 保密性比较好, 消除了最终用户交换密钥解密的问题;
    • 缺点: 加密和解密花费时间长, 速度慢;
    • 应用: 适用于对少量数据进行加密;
    • 经典算法:
      • RSA(该算法名称由发明这个算法的三个人的名字[Rivest、Shamir 和 Adleman]而来), 具体算法的实现: ①随机得到两个比较大的不相等的质数m和n, 并计算两个质数的乘积为k; ②计算k的欧拉函数φ(k); ③随机选择一个整数e, 使得1< e < φ(k), 且e与φ(k)互质;④计算e对于φ(k)的模反元素d; ⑤将k和e封装成公钥,k和d封装成私钥;[数学术语介绍: ①欧拉函数:任意给定正整数n, 计算在小于等于n的正整数之中, 与n构成互质关系的整数有多少个的方法即为欧拉函数; ②模反元素: 假定两个正整数a和n互质, 那么一定存在整数b, 使得ab被n除的余数是1, 则称b就叫做a的“模反元素”]

你可能感兴趣的:(Java中的常见加密)