在那里~我是新来的flutter开发,我试图使用Node.js服务器发送一个公钥到flutter加密密码但是,它就是不工作,我试图通过JSON格式或通过PEM文件的flutter和使用[Flutter]-加密和[Flutter]-simple_rsa库做加密,但它仍然不能工作。我怎么能这么做?请帮忙,多谢。
[Node.js]-使用[Node rsa]创建密钥[Flatter]-使用[encrypt]加密字符串代码,如下所示:
服务器端[Node.js]:
密钥发生器
function generator() {
publicDer = key.exportKey('pkcs1-private-pem')
privateDer = key.exportKey('pkcs1-public-pem')
fs.writeFile('./pem/public.pem', publicDer, (err) => {
if (err) throw err
})
fs.writeFile('./pem/private.pem', privateDer, (err) => {
if (err) throw err
})
}
发送密钥。将pem文件发送到客户端
//------------------------send file to client
app.get('/getFile',(req,res)=>{
var filePath = path.join(__dirname, './pem/public.pem');
var stat = fs.statSync(filePath);
res.writeHead(200,{
'Content-Type': 'application/x-x509-ca-cert',
'Content-Length': stat.size,
'Content-Disposition' :'filename="PublicKey.pem'
});
var readStream = fs.createReadStream(filePath);
readStream.pipe(res);
});
客户端[颤振]
Future<String> encode(pwd) async{
try{
Response response = await Dio().post("http://10.0.2.2:8124/login/key");
print(response.data['pub_key'].toString());
var tmp_str = 'Hello';
if(await _checkPermission()==true){
var tmp_path = await _createPath();
var result = _downloadFile("http://10.0.2.2:8124/getFile",tmp_path);
tmp_path += "PublicKey.pem";
final publicKey = await parseKeyFromFile<RSAPublicKey>(tmp_path);
final encrypter = Encrypter(RSA(publicKey: publicKey));
final encrypted = encrypter.encrypt(tmp_str);
print(encrypted.base64);
}
}catch(e){
return e.toString();
}
}
下载pem文件成功。结果如下:在此处输入图像描述
你可以使用这个软件包https://pub.dev/packages/encrypt#asymmetric请注意,在下面的示例中,我无法解析pem密钥,所以我修改了一点类似于bellow的内容,然后它就可以工作了。
final publicPem = await rootBundle.loadString('assets/public.pem');
final publicKey1 = RSAKeyParser().parse(publicPem) as RSAPublicKey;
问题内容: 我正在编写一个用于传输文件的小型应用程序,或多或少地将其作为一种学习更多编程加密基础的方法。这个想法是生成一个RSA密钥对,交换公共密钥,并发送AES iv和密钥以进一步解密。我想用接收者的RSA公钥加密AES密钥,如下所示: 然后,我将密钥值写给接收器,并按如下方式解密: 在控制台的另一端,我将其作为输出: 此外,如果我创建一个大小为16的字节数组,并将cipher.doFinal(
我有一个RSA公钥证书。我可以使用具有。PEM扩展名或仅将其用作具有以下格式的字符串: 启动RSA公共密钥 {KEY} -----结束RSA公钥----- 我试图使用此密钥向服务器发送加密的JSON。我尝试了许多其他相关堆栈溢出问题的解决方案,但没有一个答案不适合我。这个答案似乎有道理https://stackoverflow.com/a/43534042,但有些东西不能正常工作,可能是因为X50
我使用Delphi XE和Lockbox3.5,我想加密一个字符串,该字符串具有支付网关提供的公钥,需要操作,公钥类似于:------开始公钥------这里的职员------结束公钥------我无法使RSA编解码器读取该公钥,我的代码如下: 编解码器cdcRA链接到CryptoLibrary,密码为(RSA公钥加密系统*),链接模式为空,但此代码失败,并出现内存不足错误。谢谢你的提示。。 演示
并且我将这个函数称为用RSA公钥加密DSA密钥的函数:
说明 微信支付-获取RSA加密公钥SDK,企业付款到银行卡接口需要。 你还需要执行openssl rsa -RSAPublicKey_in -in weixin-rsa-public.pem -pubout 将命令行输出的证书内容覆盖到weixin-rsa-public.pem文件中才可使用 官方文档:https://pay.weixin.qq.com/wiki/doc/api/tools/mch
如何从Go中的字符串导入RSA公钥,以便用于加密数据? 我的程序应该执行以下操作: > 接收一个用Base64编码的公钥 将此公钥从Base64解码为字节 导入公钥,以便Go的RSA实现可以使用(问题在这个阶段) 加密AES密钥: 提前谢谢! 解决方案: 公钥必须使用crypto/x509包进行解码。 例如: 然后可以使用带有RSA的进行加密。