rename b64u to b64t; rename x2y 为 x_to_; add b32 的转换函数
This commit is contained in:
43
README.md
43
README.md
@@ -57,40 +57,53 @@ const keyPair = crypto.generateKeyPairSync('rsa', {
|
||||
})
|
||||
```
|
||||
|
||||
这样生成的 keyPair.privateKey 开头是 -----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
这样生成的 keyPair.privateKey 开头是 -----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
|
||||
如果直接
|
||||
|
||||
如果直接
|
||||
```
|
||||
crypto.privateEncrypt(kp.privateKey, Buffer.from('sdafasfdsaf'))
|
||||
```
|
||||
会报错
|
||||
|
||||
会报错
|
||||
|
||||
```
|
||||
Uncaught TypeError: Passphrase required for encrypted key
|
||||
```
|
||||
所以要这样才行
|
||||
|
||||
所以要这样才行
|
||||
|
||||
```
|
||||
crypto.privateEncrypt({key:kp.privateKey, passphrase:''}, Buffer.from('sdafasfdsaf'))
|
||||
```
|
||||
我从 https://www.cnblogs.com/chyingp/p/nodejs-asymmetric-enc-dec.html 抄到一个 privateKey 可以直接使用,不需要 passphrase
|
||||
|
||||
返回 Buffer。每次结果都一样
|
||||
|
||||
我从 https://www.cnblogs.com/chyingp/p/nodejs-asymmetric-enc-dec.html 抄到一个 privateKey 可以直接使用,不需要 passphrase
|
||||
|
||||
这样生成的 keyPair.publicKey 开头是 -----BEGIN PUBLIC KEY-----
|
||||
返回 Buffer。每次结果都一样
|
||||
|
||||
这样生成的 keyPair.publicKey 开头是 -----BEGIN PUBLIC KEY-----
|
||||
|
||||
可以直接
|
||||
|
||||
可以直接
|
||||
```
|
||||
crypto.publicEncrypt(kp.publicKey, Buffer.from('sdafasfdsaf'))
|
||||
```
|
||||
|
||||
返回 Buffer。每次结果不一样
|
||||
返回 Buffer。每次结果不一样
|
||||
|
||||
|
||||
似乎 crypto 一定要 rsa 公私钥才可以用加解密,ticCrypto.randomKeypair() 生成的 ecc 公私钥不行。
|
||||
|
||||
似乎 crypto 一定要 rsa 公私钥才可以用加解密,ticCrypto.randomKeypair() 生成的 ecc 公私钥不行。
|
||||
而 eccrypto 和 eccrypto-js 可以用。eccrypto.generateKeyPair() 生成的和 ticCrypto.randomKeypair() 一样
|
||||
|
||||
而 eccrypto 和 eccrypto-js 可以用。eccrypto.generateKeyPair() 生成的和 ticCrypto.randomKeypair() 一样
|
||||
eccrypto 在 windows 上的安装有麻烦,一来需要手工安装 OpenSSL 到 c:\openssl-win64\,二来 openssl 1.1.0 起把 libeay32.lib 改名为 libcrypto.dll,而 eccrypto 需要 c:\openssl-win64\lib\libeay32.lib,会报错
|
||||
|
||||
eccrypto 在 windows 上的安装有麻烦,一来需要手工安装 OpenSSL 到 c:\openssl-win64\,二来 openssl 1.1.0 起把 libeay32.lib 改名为 libcrypto.dll,而 eccrypto 需要 c:\openssl-win64\lib\libeay32.lib,会报错
|
||||
eccrypto-js 在 devDependencies 里继承了 eccrypto,因此 npm i --production 即可
|
||||
|
||||
eccrypto-js 在 devDependencies 里继承了 eccrypto,因此 npm i --production 即可
|
||||
base32 有多种字符集:[Base32 - Wikipedia](https://en.wikipedia.org/wiki/Base32)
|
||||
|
||||
IPFS用的是 RFC4648字符集
|
||||
|
||||
- 从数到数符串:Number(数).toString(进制数),0x数.toString(进制数), 0b数.toString(进制数)
|
||||
- 从数符串到数字:parseInt(str, 进制数)
|
||||
- Buffer到数符串: Buffer.toString(编码方案例如'hex','base64',默认'utf8')
|
||||
- 字符串到Buffer: Buffer.from(data, 编码方案如'hex','base64',默认'utf8')
|
||||
|
||||
Reference in New Issue
Block a user