账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    JavaScript怎么做RSA加密解密, 签名和验签? 有没有好用的库?
    84
    0

    ---- 错误问题描述 ----
    我搜集的资料,
    1)jsencrypt.js, 这个可以公钥加密, 私钥解密, 但是有个问题, 没有办法签名. 用私钥加密, 公钥没法解密.
    2)jsrsasign.js, 这个貌似只能签名, 没有加密, 解密的功能.
    ---- END ----

    ---- 一更 ----
    开始的问题描述, 经我的进一步了解是错误的, 希望不要给人带来误导.

    1) jsencrypt.js可以加密解密, 也有签名验签的API, 但是经测试, 貌似签名验签时Java不兼容.
    2) jsrsasign.js虽然名字标识sign, 但是远不止签名功能, 也有加密解密的功能. 重点是可以和Java兼容.

     a. 前段加密, 后端解密. 
     b. 后端加密, 前端解密.
     c. 前端签名, 后端验签.
     d. 后端签名, 前端验签.
     

    详细使用笔记, 参见我的简书文章: jsrsasign使用笔记(加密,解密,签名,验签)

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 在JavaScript中,你可以使用一些第三方库来实现RSA加密、解密、签名和验签。以下是一些常用的库:

      1. cryptojs:这是一个强大的JavaScript加密库,提供了多种加密算法,包括RSA、AES、DES等。它还支持各种对称和非对称加密算法,以及各种密码学相关的功能,如密码存储、密码哈希、密钥交换、数字签名等。

      2. forge.js:这是一个JavaScript的RSA生成器,用于生成和验证随机的RSA密钥对。它支持用户自定义公钥和私钥,以及多种RSA算法。

      3. jpad.js:这是一个JavaScript的私钥哈希工具,用于将密钥转换为哈希值。它可以生成任意长度的密钥,支持多种加密算法,包括RSA、AES等。

      4. CryptoJS-PKCS1v15:这是一个JavaScript的PKCS1v15加密解密库,它支持各种对称加密算法,如RSA、AES等。它还支持数字签名、密钥交换、证书等。

      以上库都有各自的优缺点,你可以根据你的具体需求来选择使用。例如,如果你需要生成和验证随机的RSA密钥对,那么Forge.js是一个不错的选择;如果你需要进行密钥交换和证书生成,那么CryptoJS-PKCS1v15是一个更合适的选择。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部