- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
大家好:我正在使用 NodeRSA 通过以下几行生成私钥-公钥对:
const key = new nodeRSA();
key.generateKeyPair(2048, 65537);
删除页眉和页脚以及 \n
后,该对看起来像这样:
//only for demo
"publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlJ3PpWq77KY+tFccFfH4bO65Nu82LyzX0FxYGZ/QaF+LuZqeXEErXUO5iJ3P+hPRtiHUEHr9d5mfqStA/DnXxBbFmbwatNE8ncu4pSBOr9pbUyt22BRVkaiBBN0IuzBwo4ZWNrsON7IolVJnh8BKyurO5r7uj3aa8Yz0wcwIIkgais967iFWoj8YyeMSXpqUuMQu4mvcWB0EY/+wJNQnlSf7WuoJaTtzPzLe0qBaGnYO01ASxeOgPRzAJJ8prz2xZ5xy1nW+w+88XHVQsQizJ32B5Mzw7CpAeKIAnhlMVs8gVVc7iCfiwLoMiZXSReNxl2WfIYbHpaH2e6kPZoYNLQIDAQAB",
"privateKey": "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCUnc+larvspj60VxwV8fhs7rk27zYvLNfQXFgZn9BoX4u5mp5cQStdQ7mInc/6E9G2IdQQev13mZ+pK0D8OdfEFsWZvBq00Tydy7ilIE6v2ltTK3bYFFWRqIEE3Qi7MHCjhlY2uw43siiVUmeHwErK6s7mvu6PdprxjPTBzAgiSBqKz3ruIVaiPxjJ4xJempS4xC7ia9xYHQRj/7Ak1CeVJ/ta6glpO3M/Mt7SoFoadg7TUBLF46A9HMAknymvPbFnnHLWdb7D7zxcdVCxCLMnfYHkzPDsKkB4ogCeGUxWzyBVVzuIJ+LAugyJldJF43GXZZ8hhselofZ7qQ9mhg0tAgMBAAECggEBAI3lt9Mq+89SU+CAo7JYXGg17uYCtGuKl2y8Huooayacw54tgTJ4jtz3wvgsJd2SetM5rW8m30gIiCdPwzaQS/FQBM9qiN1IQmYvk1cmZ7sD89qPT2O01pbCmp14JdQExid8JmkPZN3M327jRTKaaU8hrvcmKkUUa5Bik3dORh3j3od21KVzkDc4ZlI8pPggBWM9bXPOMCd2cPYHBRnBvyo7RG5C1SjV3qlUC4xnbzh6MN/rMWTLQYJu8czZhmonPdLzNZVDFW0wQM+sRHeiXTx/8U0kSZ41iFLvqGxchD9jOvPhC1vzSLh2Ziq6I/mIat6hKjSZoqIq9YHZAgRlxQECgYEA3y9Un4woKgGOmQqFuiJxiYLusR7oEoYnvd5wXDzlddLDYb7SALBya73W6Z+gtYlBw6OEAmSsPGZW0432lMIasvyvdrl1lKgORoTktIBYRnu05LNCwzHxTFhYB1rLyf6A0s110i+mVeAgT5weoB1J1uK1qSvKNNuXkAokduhCwCECgYEAqne6VbtOlSllofrOH+3qwPu+j8SYqV7a5vNNFlr/LY7NPazasZLIS4MEb6uTyxcDFGny04+IpbU1Gr7rEwAtp8yHPmeJ7WDwU6LdyxVbWXSW0TqEdtnI/iwOIYDhBowFLRdwbunvkzpU1QlIwikSrz03nr7f9wxDAblbRoqm240CgYEAs60uCnhSiWbRf0HqYOyDzTn8odmI6gjZC9F9UbSw4oc4RoPSGz3yD+04jMK3Jg8HQ9JrX2XfB404T36VyjLuPbSSKhmqoHAfdgRc/zfoWW4UNp5enDij01u4GsutDsR2v78rIHi+B5q1SIIeYbbSkE3aBAS9+Ink3dBchOH9gyECgYBA8FdVrYMkI58J88duNm5FkiFoF1aovu/ZJzpol8W6Dzp0klLFbstKqOCZwd0NcvjDYBEXMwi1R7CxPaXDmT/LOokS5tKOUW18DwE7CinAjD+f+RDZTeHZoeLINJaErfaS1OkJ96hCh+glN+I1xPvPMhzsJn6fWFZ2Y6w31T33SQKBgQDFbYrJJSqScJFG/whQSCKBZSiyT5wJ0UE2VWuy9SiX+4YAJ+NVCSSVQIfwxrWkDjkcgiEv1mBxR4lgAnzI9TNu7APiBilHb3oRyNnfbLqsZ7q1lqsAlzqGFiXEQk3DbTEaVDgwBu5izyRhQLAmhdPOhisMVy1P8T7Hfsx7T/peEg=="
我使用上面的公钥来加密一些数据,然后通过以下行使用上面的私钥(转换为缓冲区)解密:
// ivBuf is the buffer of initialization vector
crypto.createDecipheriv('aes-256-gcm', privateKeyBuf, ivBuf);
但是 Node crypto 提示:
crypto.js:235
this._handle.initiv(cipher, toBuf(key), toBuf(iv));
^
Error: Invalid key length
at Error (native)
at new Decipheriv (crypto.js:235:16)
at Object.Decipheriv (crypto.js:232:12)
问题是:为什么 key 长度无效?
谢谢!
最佳答案
crypto 模块使用的默认字符串编码从二进制更改为 utf8。因此,您的二进制字符串将被解释为 utf8,并且在转换过程中很可能会变得大于 16 字节
关于node.js - Node crypto createDecipheriv 抛出无效 key 长度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42167444/
我有以下代码可以解密加密文本: var crypto = require('crypto'); var Buffer = require('buffer').Buffer; var iv = new
我正在尝试使用流加密/解密文件。我不知道如何正确地做到这一点。解密后的文件大小为0字节。 我找不到任何有关如何加密/解密流的正确信息。我发现的所有模块和文章都使用非常过时的方法(它们使用已弃用的方法)
大家好:我正在使用 NodeRSA 通过以下几行生成私钥-公钥对: const key = new nodeRSA(); key.generateKeyPair(2048, 65537); 删除页眉和
我在使用 crypto.createDecipheriv 时遇到一个非常奇怪的错误 定义如下代码时: var decipher = crypto.createDecipheriv('aes-256-c
我是一名优秀的程序员,十分优秀!