关于“php的rsa加密”的问题,小编就整理了【3】个相关介绍“php的rsa加密”的解答:
php中RSA加密,明文超长,需要分段加密该怎么做?这方面的话我不是很了解,一般来说,加密分为两个部分,一个是非对称加密,一个是对称加密,使用对称加密加密正文信息,使用非对称加密加密对称加密的密钥,然后发送加密数据(消息摘要和数字签名就不讨论了),这是正规的数据加密策略,对称加密默认支持大数据分段加密策略,你只需要从接口中完成加密即可,而且对称加密速度比非对称加密快很多,如果你需要使用这个策略建议使用AES。
如果你不愿意使用对称加密,只愿意使用AES加密,那你就必须丧失速度了,而且自己处理分段加密,因为RSA加密通常是117个字节就要分段(这个长度可能和密钥长度有关,我是用的接口是117),你需要自己把数据变成N个117字节的数据段来完成加密,解密也需要自己完成字节拼装。详细还是建议你去后盾人平台去看看视频教学吧,那里面有的,讲的很清楚。
rsa不属于公钥加密体制对吗?RSA是一种公钥加密体制,属于非对称加密算法的一种。在RSA加密体制中,每个用户都有一对密钥,其中一个是公钥,另一个是私钥。公钥可以公开,任何人都可以使用公钥对数据进行加密,但只有私钥持有者才能解密。RSA加密体制被广泛应用于信息安全领域,例如加密通信、数字签名、身份认证等。因此,RSA是一种重要的公钥加密体制。
公开密钥加密是指什么?参考:
密码学之RSA加密
RSA加密:非对称密钥,公开密钥算法RSA加密利用了单向函数正向求解很简单,反向求解很复杂的特性。具体是利用了:1.对两个质数相乘容易,而将其合数分解很难的这个特点进行的加密算法。 n=p1*p2,已知p1、p2求n简单,已知n求p1、p2困难。2.(m^e) mod n=c,已知m、e、n求c简单,已知e、n、c求m很难。RSA加密,实现了公开密钥,就是A可以给所有人发送锁,其他人把要加密的信息用这把锁加密后发送给A,A用自己的钥匙开锁就可以获得加密的信息了。反过来,A要发送加密信息给B,只要知道B的锁就可以了,而这个锁是公开的。公开密钥n、e的生成:随机选取两个质数p1、p2,n=p1*p2,再随机选取一个整数e,e与φ(n)互质。加密过程:(m^e) mod n=c,其中m为原信息,c为加密信息,n、e为公开密钥。解密过程:(c^d) mod n=m,其中d为解密密钥。解密密钥d的求解:(c^d) mod n=(((m^e) mod n)^d) mod n=((m^e)^d) mod n=(m^ed) mod n=m ①根据费马定理(m^φ(n)) mod n≡1,又1^k≡1,所以(m^k*φ(n)) mod n≡1,两边同乘以m得m*((m^k*φ(n)) mod n)≡1*m,化简(m^(k*φ(n)+1)) mod n≡m ②由①、②得ed=(k*φ(n)+1),解得d=(k*φ(n)+1)/e。费马定理:若p是素数,a与p互素,则a^(p-1)≡1 (mod p)过程如下:A:有一个公钥n、e。例如:3127、3。B:有一个信息m。例如:89。C:偷听者A:第一步:随机找两个质数p1、p2,一个奇数e。例如:53、59、3。第二步:计算n=p1*p2得到n,计算欧拉函数φ(n)=(p1-1)*(p2-1)得到φ(n),计算钥匙d=(k*φ(n)+1)/e得到d。例如:53*59=3127、(53-1)*(59-1)=3016、(k*φ(n)+1)/e=(2*3016+1)/3=2011。第三步:发送n、e给大家知道 //n、e就是公钥也做锁,d就是n、e的钥匙。C:获得n、eB:第一步:获得n、e第二步:加密信息m,(m^e) mod n=c,获得加密信息c。例如:(89^3) mod 3127=1394。第三步:发送c给AC:第一步:截获加密信息c第二步:破解信息c,此时C只有n、e、c,只有把n分解质因数才能破解,而此分解很困难特别是当n很大的时候。A:第一步:收到加密信息c第二步:解密信息c,(c^d) mod n=m,获得信息m。例如:(1394^2011) mod 3127=89。完成
到此,以上就是小编对于“php的rsa加密”的问题就介绍到这了,希望介绍关于“php的rsa加密”的【3】点解答对大家有用。