Base64、MD5、RSA和ASE加密算法总结及JAVA实现-RSA

本文介绍了非对称加密算法,特别是RSA算法的工作原理,包括其数学基础和加密解密过程。并提供了RSA算法在JAVA中的实现示例。
摘要由CSDN通过智能技术生成

常见加密算法

常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。

非对称加密算法

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
常见的非对称算法包括了:RSA、Elgamal等算法。

RSA算法

RSA是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥。公钥是可发布的供任何人使用,私钥则为自己所有,供解密之用。
过程:

  1. 随意选择两个大的质数p和q,p不等于q,计算N=pq。
  2. 根据欧拉函数,不大于N且与N互质的整数個数為(p-1)(q-1)。
  3. 选择一个整数e与(p-1)(q-1)互质,并且e小于(p-1)(q-1)。
  4. 用以下这个公式计算d:d× e ≡ 1 (mod (p-1)(q-1))。
  5. 将p和q的记录销毁。

(N,e)是公钥,(N,d)是私钥。

JAVA实现

public class RSAUtils {
   

    public static final String CHARSET = "UTF-8";
    public static final String RSA_ALGORITHM = "RSA";

    public static Map<String, String> createKeys(int keySize){
        //为RSA算法创建一个KeyPairGenerator对象
        KeyPairGenerator kpg;
        try{
            kpg = KeyPairGenerator.getInstance(RSA_ALGORITHM);
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值