您现在的位置是:首页 > 技术教程 正文

RSA加密解密(无数据大小限制,php、go、java互通实现)

admin 阅读: 2024-03-14
后台-插件-广告管理-内容页头部广告(手机)

RSA加解密中必须考虑到的**长度、明文长度和密文长度问题。明文长度需要小于**长度,而密文长度则等于**长度。因此当加密内容长度大于**长度时,有效的RSA加解密就需要对内容进行分段。

这是因为,RSA算法本身要求加密内容也就是明文长度m必须0<m<**长度n。如果小于这个长度就需要进行padding,因为如果没有padding,就无法确定解密后内容的真实长度,字符串之类的内容问题还不大,以0作为结束符,但对二进制数据就很难,因为不确定后面的0是内容还是内容结束符。而只要用到padding,那么就要占用实际的明文长度,于是实际明文长度需要减去padding字节长度。我们一般使用的padding标准有NoPPadding、OAEPPadding、PKCS1Padding等,其中PKCS#1建议的padding就占用了11个字节。

这样,对于1024长度的**。128字节(1024bits)-减去11字节正好是117字节,但对于RSA加密来讲,padding也是参与加密的,所以,依然按照1024bits去理解,但实际的明文只有117字节了。

生成:在线RSA公钥私钥生成

公钥:

  1. -----BEGIN PUBLIC KEY-----
  2. MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyXyvN9fLKoixOZsD61cJ
  3. QxzuRNCPdruj5ApBsr2jIakpF7yCXTh3OgKOzE2Y9O5r8kC7oDaDOhmcagPG4nsi
  4. 80HMGynh/Kwa3bUpPEySsHk6qYI4QAz8XS9IQ/y1GD9tsEgY/783fA1hKr/yPpfP
  5. eVQdmlYd2GT4owUAoSS4zXcFNlUf/4dy052Jbb/0am6zONLC7BwyZ2d+znGhX2te
  6. LdR9EegPZcpRBAf+litsmzhsRa3CO4vRWgexYOrsr07gCpwnEFEJYUnB8Zq/OfCr
  7. qxqXnj+NkqTcMB6JUvyYWtfuWrRxgf8iHsau8Ds354BDv3t3TgMjpuWxpzX+eArc
  8. 9QIDAQAB
  9. -----END PUBLIC KEY-----

公钥:

  1. -----BEGIN RSA PRIVATE KEY-----
  2. MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDJfK8318sqiLE5
  3. mwPrVwlDHO5E0I92u6PkCkGyvaMhqSkXvIJdOHc6Ao7MTZj07mvyQLugNoM6GZxq
  4. A8bieyLzQcwbKeH8rBrdtSk8TJKweTqpgjhADPxdL0hD/LUYP22wSBj/vzd8DWEq
  5. v/I+l895VB2aVh3YZPijBQChJLjNdwU2VR//h3LTnYltv/RqbrM40sLsHDJnZ37O
  6. caFfa14t1H0R6A9lylEEB/6WK2ybOGxFrcI7i9FaB7Fg6uyvTuAKnCcQUQlhScHx
  7. mr858KurGpeeP42SpNwwHolS/Jha1+5atHGB/yIexq7wOzfngEO/e3dOAyOm5bGn
  8. Nf54Ctz1AgMBAAECggEAUjvtV6FfblCz5Ir8IoU3ZojcRoHIy/DxhxUYk1cKyaY8
  9. +08Y9esh3i9FEOVq1CyrKgh5i340OPZS/IHmHnGbZiUopL2HWpTzsiFKXy3xgM05
  10. wA1B4AJszauKlxUA5JCeuB/09AybHKppSgVlXV6gcyh9nIwhSjyLrh1QkHRoaJK9
  11. DebFWCGEFEl5mpKtklc9TQCmbwIJEVk2406BgKt1iCHqFqsXSEDXh0/HYAwLgLxg
  12. mQTvKDqI1XTUqXYKXLEbTVpRqgdM9+LxsscoNxqX8vA/NnqpSVS1onVlyR3tYWQm
  13. upN72wInNcJS3rLb8BX34rLvQguXOOpT4w5+kRfUUQKBgQD4f2+EU+J8f13+mO6v
  14. k0iZ0kOURHAXrgf1oOQSAYGnU6vmnpLNkTUcHwUfCb06VwKvPAKK0hFBgirbaTeD
  15. YQOLT7XJmX8vpt9baNT++51PtSMj61GnZaxeR7fd1MzL2NcGQshFJr8S4h7IWOTM
  16. bFc/xLurmmbH1/Dzg+Y5CtTtHwKBgQDPkeq+yWa//OjGPxbKNZ/ES2+kat+/bKuG
  17. m6RoSZ0WpAgGk5gyI/soLt3ARdd6xHW8OG+vMGuo1530V7B3GZVVIK3x7FcMJ61E
  18. I7JQDUvTlM1IEXiQMQxBgTyrvKEhsc39H4UNoSLd0GobB4d5Re2jdghS3s4nKgRa
  19. x5m4CAsfawKBgBB9fGv+mRAD77vecDBsiKvUfTGQnROlM9gD9j6PpQfykHy8VyeX
  20. FDwqfs+BePIvJfl09QI7UHPVbHyk7c8lF/QdtQWMzxjdbQMG4OOO1PCeJ5fRnNiL
  21. 8bVL8xKgdXqtiA9dTSbxnEpngP1wkLZUFjIgHwgTNfDbDp1KSnPMmTanAoGAI9MM
  22. T9dUy4fr6ONUnJu6sldOsnLboR8xT28nZfRmj1TKKdBpcSXyoBHOpfOn6AFmTJD0
  23. /ah+vEpScax8wWGB+4pDW0CuGWPzrJH4oYZZ8u94qpqRU1mTwu56OS26JaWZZrl8
  24. 7khES0JAPeADyrN9+ztQ3nSj4fCHhd9zMWb5/HcCgYEAz0w883BdI1uvWq12IE5g
  25. gJ62EDpSx0RoFlhq4ys6XvWGBywMdg4l3Ls2Xc+VY/jzE87f2hJdGTprHkEkQEHm
  26. Tf7WvCd/lfwW7DuC7M34QCn4GbUI1i23wcHvUaR9nztqjCBug4hgwYsJee9EYDjk
  27. GoqgYm9dIQw0g9d2FYJU1Pg=
  28. -----END RSA PRIVATE KEY-----

Go实现

  1. 标签:
    声明

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    在线投稿:投稿 站长QQ:1888636

    后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索