Java教程

RSA加解密、签名验签算法

本文主要是介绍RSA加解密、签名验签算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

来源

https://www.1024sou.com/article/780584.html
https://github.com/cqingt/RSA_JS_PHP
https://github.com/travist/jsencrypt/issues/110

在线Rsa 公私钥分解 Exponent、Modulus,Rsa公私钥指数、系数(模数)分解
http://tool.chacuo.net/cryptrsakeyparse

 


// 最大明文长度 = 密钥长度/8 - 11 。“密钥长度”即为模值n,一般为1024比特。

// RSA加密的明文长度被限定为128字节,这其中包含11字节的填充(padding)标记,
// 填充(padding)是为解密后容易识别而设置的,所以有效的明文长度最大为117字节。
// 加密时要按规则把明文用随机数填充到密钥长度,因此加密后到密文长度肯定也是密钥长度,
// 由于对明文的随机填充,密文每次都会不同(除非长度恰好只填充了规则里的3字节)

// 由于密钥长度和填充的关系,明文块长度 maxLength 不建议设置最大值117 ,但也不建议设置太小
// 一般设为8的倍数,93 ~ 117 ,


所谓签名其实就是用私钥加密,而验签就使用公钥解密,从而来证明数据的合法性。
私钥签名填充规则和公钥加密填充规则不同,但是大体差不多。
同样的数据使用同样的私钥签名,结果是一致的。这一点和加密不同。

签名值的长度肯定是和密钥长度完全一致,RSA2048就肯定是256字节,RSA1024就肯定是128字节,以此类推。

 

GET请求长度跟浏览器和WEB服务器有关,一般常见的浏览器的请求长度比WEB服务器的设定值要大。

Apache请求行长度的默认限制是8 * 1024 = 8192字节,除过版本等一些别的占用,最终将占8177个字节

 

这篇关于RSA加解密、签名验签算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!