0
我想在Android中對消息進行簽名並驗證Node.js Web應用程序中的簽名。將Java公共DSA或RSA密鑰轉換爲Node可以識別的格式
在Android方面,我創建的關鍵如下:
KeyPairGenerator generator = KeyPairGenerator.getInstance("DSA");
generator.initialize(dsabits, sr);
KeyPair keyPair = generator.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
FileOutputStream fos = new FileOutputStream(filename);
fos.write(publicKey.getEncoded());
fos.close();
現在我想用該公鑰來驗證郵件中的Node.js:
var messageBase64 = "SGVsbG8gRmVsaXgh";
var signatureBase64 = 'MCwCFF9mV7/m3D8qjJKZSj3JMtqEmCQmAhQk9wSVnyOQgvUd5/n/iGAr4cNxLw=='
var crypto = require('crypto');
var fs = require('fs');
var verify = crypto.createVerify('dsaWithSHA');
var buffer = new Buffer(messageBase64, 'base64');
verify.update(buffer);
var key = fs.readFileSync('./keys/public.key');
var isValid = verify.verify(key, signatureBase64 , 'base64');
我如何將Java生成的密鑰文件轉換爲Node可以讀取的文件?或者我怎麼能創建一個我可以在兩個中使用的密鑰對?