• 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字节,以此类推。

    相关的 JS 和 PHP 的代码      https://files.cnblogs.com/files/yisuo/rsa-demo.zip

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

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

  • 相关阅读:
    Windows网络编程:多线程技术
    Windows网络编程:OSI七层模型
    Windows网络编程:WinSock模型
    Windows网络编程:基于Scoket最简单的CS
    Windows网络编程:同步/异步 阻塞/非阻塞
    1.WebGL:简介
    无聊的面试啊:2020
    第一次面试
    实习第三周
    Eclipse新建web项目
  • 原文地址:https://www.cnblogs.com/yisuo/p/15977441.html
Copyright © 2020-2023  润新知