pan*_*iko 4 javascript encryption rsa dart flutter
正如标题所示,我想知道是否有一种方法可以加密和解密,例如使用RSA算法、从javascript到dart的数据以及相反的方法。我看到有一个库“js”,它允许您在 dart 中使用 javascript 代码,但我无法使用它来满足我的需要。我还尝试使用为两种语言提供的各种库 \xe2\x80\x8b\xe2\x80\x8b 来执行这些加密操作,但它们在两种语言之间不兼容。
\n注册机 (NodeJS)
文档:https ://nodejs.org/api/crypto.html#crypto_crypto_generatekeypair_type_options_callback
const { generateKeyPair } = require('crypto');
generateKeyPair('rsa', {
modulusLength: 4096, // key size in bits
publicKeyEncoding: {
type: 'spki',
format: 'pem',
},
privateKeyEncoding: {
type: 'pkcs8',
format: 'pem',
},
}, (err, publicKey, privateKey) => {
// Handle errors and use the generated key pair.
});
Run Code Online (Sandbox Code Playgroud)
通过JSEncrypt库进行NodeJS加密
节点js加密:https://www.npmjs.com/package/node-jsencrypt
JSEncrypt: https: //travistidwell.com/jsencrypt/#
const JSEncrypt = require('node-jsencrypt');
function encrypt(text, key) {
const crypt = new JSEncrypt();
crypt.setKey(key);
return crypt.encrypt(text);
}
function decrypt(encrypted, privateKey) {
const crypt = new JSEncrypt();
crypt.setPrivateKey(privateKey);
return crypt.decrypt(encrypted);
}
Run Code Online (Sandbox Code Playgroud)
通过crypton进行Dart加密
GitHub: https: //github.com/konstantinullrich/crypton
import 'package:crypton/crypton.dart';
import 'encryption.dart';
class AsymmetricCrypt implements Encryption {
final String _key;
RSAPublicKey _publicKey;
RSAPrivateKey _privateKey;
AsymmetricCrypt._(this._key);
@override
String encrypt(String plain) {
_publicKey ??= RSAPublicKey.fromPEM(_key);
return _publicKey.encrypt(plain);
}
@override
String decrypt(String data) {
_privateKey ??= RSAPrivateKey.fromPEM(_key);
return _privateKey.decrypt(data);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4555 次 |
| 最近记录: |