message too long for rsa [solution]

相关依赖包https://www.npmjs.com/package/jsencrypt// 私钥const privateKey = `-----BEGIN RSA PRIVATE KEY-----MIICWwIBAAKBgQCAxKwtmALgQK9kEWjVpqbuBB8icjb64UF4Bq/GpKTRN7ilOuUZAkCh0bDmFMayab4BQguvl+7eFma97h/A2OErNFzaK5zuWdc7/DZybB7UOzhfTgSm88pPdjnQGb2mNFeQ1Gz2oxkix+Muk/iXwrMaexFDFjN237cXuW3FUndgfwIDAQABAoGAAPLyHefn5YU0hbVHI4P16P0oyZUz6Idudxb9hqZB/LS/bKBRfeyxUz/7YMa4bCoxV0sIUQP6o7JgkXfGziILDsa1rcbMjR8JZypvMqkhDk+HvT8qi3uPjmxGT3usSMM+WtT3wTmwKq9cb5ldrDRdDukH/EJVSEVZtFsr8q0UtUkCQQCQO9qnPXgPdyJ+jvXZhGmDroE5FIOer9VkR/dddddddddddddddddOfGgSY1n4rVHh6nfRKZOHvQ0PuKPicMgdAkEA5IzdV61q2TQAItP1PnrpnHslJ5lmls4pmLYVy6cRgPMDtTdfxErqKuTxA0tEIVYznXJu4JPnP5vafyULsQPASwJAKAYT9Nif2lrK3ae6HTQbO4lPHpHMvFo6sustUrpnFCf1MxBQVvThyyvGjWO4ccNWt4Qi343T/JS/bR9lis6VGQJAT3AywvXQzJwJbBGWDVh1eGFJIcFs6f/Qb3bijn2MVPCimksb60NKrwwSRV3U2W131ULgDQj7eJ14TXcX4Df4jwJAZMKmzojHUuFOsjo2VWIgwhjglYTVUknON+D2skatjyk1jPSYEhquhaa7cyHfMioFrMjnZEjRiyLUYcSabcdf123123-----END RSA PRIVATE KEY-----`;// 公钥const publicKey = `-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCAxKwtmALgQK9kEWjVpqbuBB8icjb64UF4Bq/GpKTRN7ilOuUZAkCh0bDmaddfdb4BQguvl+7eFma97h/A2OErNFzaK5zuWdc7/DZybB7UOzhfTgSm88pPdjnQGb2mNFeQ1Gz2oxkix+abc/iXwrMaexFDFjN237cXuW3FUndgf12312313-----END PUBLIC KEY-----`;// 长文本加密处理JSEncrypt.prototype.encryptLong = function (text) {    let k = this.getKey();    let maxLength = (((k.n.bitLength() + 7) >> 3) - 11);    try {        if (text.length > maxLength) {            let lt = text.match(/.{1,117}/g), ct = '';            lt.forEach((entry) => { ct += k.encrypt(entry); });            return ct;        }        return k.encrypt(text);    } catch (ex) {        console.warn('encryptLong error:', ex);        return false;    }}// 长文本解密处理JSEncrypt.prototype.decryptLong = function (text) {    let k = this.getKey();    let maxLength = ((k.n.bitLength() + 7) >> 3);    try {        if (text.length > maxLength) {            let lt = text.match(/.{1,256}/g), ct = '';            lt.forEach((entry) => { ct += k.decrypt(entry); });            return ct;        }        return k.decrypt(text);    } catch (ex) {        console.warn('decryptLong error:', ex);        return false;    }}// 加密function RsaEncrypt(encrypted) {    const encryptor = new JSEncrypt()    encryptor.setPublicKey(publicKey)    return encryptor.encryptLong(encrypted)}// 解密function RsaDecrypt(encrypted) {    const decrypt = new JSEncrypt()    decrypt.setPrivateKey(privateKey)    return decrypt.decryptLong(encrypted)}

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章