# RSAUtils **Repository Path**: chen3441251/RSAUtils ## Basic Information - **Project Name**: RSAUtils - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RSAUtils RSA算法 是非对称加密算法 * RSA算法是最流行的公钥密码算法,使用长度可以变化的密钥。RSA是第一个既能用于数据加密也能用于数字签名的算法。 *

* RSA 工具类。提供加密,解密,生成密钥对等方法。 * RSA加密原理概述 * RSA的安全性依赖于大数的分解,公钥和私钥都是两个大素数(大于100的十进制位)的函数。 * 据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积 * =================================================================== * (该算法的安全性未得到理论的证明) * =================================================================== * 密钥的产生: * 1.选择两个大素数 p,q ,计算 n=p*q; * 2.随机选择加密密钥 e ,要求 e 和 (p-1)*(q-1)互质 * 3.利用 Euclid 算法计算解密密钥 d , 使其满足 e*d = 1(mod(p-1)*(q-1)) (其中 n,d 也要互质) * 4:至此得出公钥为 (n,e) 私钥为 (n,d) * =================================================================== * 加解密方法: * 1.首先将要加密的信息 m(二进制表示) 分成等长的数据块 m1,m2,...,mi 块长 s(尽可能大) ,其中 2^s