bc-rsa

bc-rsa

基于 java BC 的仿照实现。

var bcrsa = require('bc-rsa');
 
var pubKeyStr = '100724118567656063260391399074351813613557462654985506165110127943778465569497892853674545157903102537790120445122961034100103931455570199375803471259436946904117153328794969401813200287375367074621102017861358993523605434286549386309817487344981855747096675445640640793055537444686331662196893862126864571521\n3';
 
console.log(bcrsa.encrypt('taobao1234', pubKeyStr));
console.log(bcrsa.encrypt('tangyao', pubKeyStr));
console.log(bcrsa.encrypt('xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo01xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo00xxooxxoo00', pubKeyStr));
 
// java output
// 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180d76c362b79e0db62e0754f6880fbce93d5e00f6be144545b512ae3540
// 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180d7627d1da5fd2fdf6030e4f51d9f1e7c4a2614f
// 20cf701d98a9a3cb3968972be8ffdbe6cdd0e697a45ff4982ef424c2442688754313854c8ae
// 219828391394a277f999adc1ea4952cb025c88c83212e8477bf9ef0cda184a1364a5f22cff5
// 4136142b4c658620de8f171004d3f06204cf6e7b2acc9f7ec69b5daf6e8c6025a1db7c02277
// 82c800863262e7c9ad0288d68656dd16ed7d2c4ef922e2a181ad6e30ec45e7db63082c8df7f
// b07082da33f5638c34288cdb8122a597bbee3d550bcd477ae34b03420ac32e9a56c487e4c27
// b59bd0cdf09b35a2abd1e9ebdb1352e55dad113b914b08c9a1bbfc843c5deafd1dacf6a65da
// 04f7ddf3061be8a835f094d9f325f7c29af0319a26de92d786d43957974248
 
// nodejs output
// 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180d76c362b79e0db62e0754f6880fbce93d5e00f6be144545b512ae3540
// 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000180d7627d1da5fd2fdf6030e4f51d9f1e7c4a2614f
// 20cf701d98a9a3cb3968972be8ffdbe6cdd0e697a45ff4982ef424c2442688754313854c8ae
// 219828391394a277f999adc1ea4952cb025c88c83212e8477bf9ef0cda184a1364a5f22cff5
// 4136142b4c658620de8f171004d3f06204cf6e7b2acc9f7ec69b5daf6e8c6025a1db7c02277
// 82c800863262e7c9ad0288d68656dd16ed7d2c4ef922e2a181ad6e30ec45e7db63082c8df7f
// b07082da33f5638c34288cdb8122a597bbee3d550bcd477ae34b03420ac32e9a56c487e4c27
// b59bd0cdf09b35a2abd1e9ebdb1352e55dad113b914b08c9a1bbfc843c5deafd1dacf6a65da
// 04f7ddf3061be8a835f094d9f325f7c29af0319a26de92d786d43957974248
 
  var target = 'abc';
  var pubKeyStr = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZJ5kgpUr+ewk8SLw+GBZ7pfDpl+fqvkJOwJQiiGJ1OykQ0reruNvxq72nJLFCOHaguEhqeszXdAmobJYj0arRVh3goTr+PssyiOYd1cwxHPV1V0DZK6CyofceYZ0glc5inx7T9DiJXIpCgHhHx4OYrk4D3VXiMT/r2RzKceY/kQIDAQAB';
  var rs1 = bcrsa.encryptByPublicKey(target, pubKeyStr, 'base64');
  rs1.should.eql('I0h1SEYaq/L3573TrHOMsSDHh0nwaIZx92d2zxHnoDknwKMDPGoAe9skeprmEpeNEbFpGO0djeDv18qN7s3IfEe8YX3TK/MYVHKA/GGmEMmNhDqqP7yy8RHFzQFzcaOdSjnmfajQ0DLS4gjSAohu8wspR2QaVHriYzW9hsSg5sE=');