php rsa公钥加密,php中RSA加密,明文超长,需要分段加密该怎么做?

用户投稿 84 0

关于“php_rsa公钥加密”的问题,小编就整理了【3】个相关介绍“php_rsa公钥加密”的解答:

php中RSA加密,明文超长,需要分段加密该怎么做?

这方面的话我不是很了解,一般来说,加密分为两个部分,一个是非对称加密,一个是对称加密,使用对称加密加密正文信息,使用非对称加密加密对称加密的密钥,然后发送加密数据(消息摘要和数字签名就不讨论了),这是正规的数据加密策略,对称加密默认支持大数据分段加密策略,你只需要从接口中完成加密即可,而且对称加密速度比非对称加密快很多,如果你需要使用这个策略建议使用AES。

如果你不愿意使用对称加密,只愿意使用AES加密,那你就必须丧失速度了,而且自己处理分段加密,因为RSA加密通常是117个字节就要分段(这个长度可能和密钥长度有关,我是用的接口是117),你需要自己把数据变成N个117字节的数据段来完成加密,解密也需要自己完成字节拼装。详细还是建议你去后盾人平台去看看视频教学吧,那里面有的,讲的很清楚。

RSA的公钥和私钥到底哪个才是用来加密和哪个用来解密?

其实公钥和私钥都可以用来加密或解密---只要能保证用A加密,就用B解密就行。至于A是公钥还是私钥,其实可以根据不同的用途而定。

例如说,如果你想把某个消息秘密的发给某人,那你就可以用他的公钥加密。

因为只有他知道他的私钥,所以这消息也就只有他本人能解开,于是你就达到了你的目的。

但是如果你想发布一个公告,需要一个手段来证明这确实是你本人发的,而不是其他人冒名顶替的。

那你可以在你的公告开头或者结尾附上一段用你的私钥加密的内容(例如说就是你公告正文的一段话),那所有其他人都可以用你的公钥来解密,看看解出来的内容是不是相符的。

如果是的话,那就说明这公告确实是你发的---因为只有你的公钥才能解开你的私钥加密的内容,而其他人是拿不到你的私钥的。最后再说一下数字签名。数字签名无非就两个目的:证明这消息是你发的;证明这消息内容确实是完整的---也就是没有经过任何形式的篡改(包括替换、缺少、新增)。其实,上面关于“公告”那段内容,已经证明了第一点:证明这消息是你发的。

那么要做到第二点,也很简单,就是把你公告的原文做一次哈希(md5或者sha1都行),然后用你的私钥加密这段哈希作为签名,并一起公布出去。

当别人收到你的公告时,他可以用你的公钥解密你的签名,如果解密成功,并且解密出来的哈希值确实和你的公告原文一致,那么他就证明了两点:这消息确实是你发的,而且内容是完整的。其实概念很简单:小明想秘密给小英发送消息小英手里有一个盒子(publickey),这个盒子只有小英手里的钥匙(privatekey)才打得开小英把盒子送给小明(分发公钥)

rsa公钥加密体制的安全性基于什么?

RSA公钥体制的安全性是基于大数分解(严格的说是对两个大质数的乘积进行分解)这一数学难题的。

尽管RSA是目前使用最为广泛的公钥加密算法,但人们对其安全性的质疑和研究自其诞生之日起就从没停止过。更令人担忧的是,RSA中的指数运算保留了输入的乘积结构。

到此,以上就是小编对于“php_rsa公钥加密”的问题就介绍到这了,希望介绍关于“php_rsa公钥加密”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!