web python pkcs11_用PKCS1实现python RSA

// Return the PKCS#1 RSA encryption of "text" as an even-length hex string

function RSAEncrypt(text) {

var m = pkcs1pad2(text,(this.n.bitLength()+7)>>3);

if(m == null) return null;

var c = this.doPublic(m);

if(c == null) return null;

var h = c.toString(16);

if((h.length & 1) == 0) return h; else return "0" + h;

}

// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint

function pkcs1pad2(s,n) {

if(n < s.length + 11) { // TODO: fix for utf-8

alert("Message too long for RSA");

return null;

}

var ba = new Array();

var i = s.length - 1;

while(i >= 0 && n > 0) {

var c = s.charCodeAt(i--);

if(c < 128) { // encode using utf-8

ba[--n] = c;

}

else if((c > 127) && (c < 2048)) {

ba[--n] = (c & 63) | 128;

ba[--n] = (c >> 6) | 192;

}

else {

ba[--n] = (c & 63) | 128;

ba[--n] = ((c >> 6) & 63) | 128;

ba[--n] = (c >> 12) | 224;

}

}

ba[--n] = 0;

var rng = new SecureRandom();

var x = new Array();

while(n > 2) { // random non-zero pad

x[0] = 0;

while(x[0] == 0) rng.nextBytes(x);

ba[--n] = x[0];

}

ba[--n] = 2;

ba[--n] = 0;

return new BigInteger(ba);

}

在上面的片段中,pkcs1pad2函数似乎用于在消息前面填充一些随机字节(可能类似于0 | 2 | random | 0)。在

我使用python rsa包(http://stuvel.eu/rsa)来模拟javascript结果,我是python世界的新手,不知道如何将javascript算法代码转换成python代码。在

如有任何帮助,我们将不胜感激。

洁儿

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值