Encryption RSA:将模数十六进制值转换为十进制

Encryption RSA:将模数十六进制值转换为十进制,encryption,rsa,modulus,Encryption,Rsa,Modulus,我有一个base64_编码形式的RSA公钥: -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkBJ/Wuyj0hZWa6oH+hD +5JX1rV/TAf3lKxTPf0MUrREh2S3QPzLYBdUxByI552I3nAHJAh6JujUjGkj4O1y X6OBJHJ596GQnv0wBUF5sr0QVg2ljav33HkuHt+otriY7jZy+OTlivkmdSdyhXht VNlw+

我有一个base64_编码形式的RSA公钥:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzkBJ/Wuyj0hZWa6oH+hD
+5JX1rV/TAf3lKxTPf0MUrREh2S3QPzLYBdUxByI552I3nAHJAh6JujUjGkj4O1y
X6OBJHJ596GQnv0wBUF5sr0QVg2ljav33HkuHt+otriY7jZy+OTlivkmdSdyhXht
VNlw+GgyQxeAI4f1BgaEGAfd9QJyN9yrkyZLqs9+CCmMog8ZbcqqSlR/S5nhUJku
zTD4YvmaA4okQADyOtktTCyUC3ndhRuGp451h+p5WAmcXYpW3QrqDfDzuFMy5Vlw
IB/EA9fZeMTY2tWi/7YnaVqYDJjhQv2XueOMizMCFCN2by+blc83uduPXJQpXHrV
aQIDAQAB
-----END PUBLIC KEY-----
以及十六进制形式的模数:

    00:ce:40:49:fd:6b:b2:8f:48:59:59:ae:a8:1f:e8:
    43:fb:92:57:d6:b5:7f:4c:07:f7:94:ac:53:3d:fd:
    0c:52:b4:44:87:64:b7:40:fc:cb:60:17:54:c4:1c:
    88:e7:9d:88:de:70:07:24:08:7a:26:e8:d4:8c:69:
    23:e0:ed:72:5f:a3:81:24:72:79:f7:a1:90:9e:fd:
    30:05:41:79:b2:bd:10:56:0d:a5:8d:ab:f7:dc:79:
    2e:1e:df:a8:b6:b8:98:ee:36:72:f8:e4:e5:8a:f9:
    26:75:27:72:85:78:6d:54:d9:70:f8:68:32:43:17:
    80:23:87:f5:06:06:84:18:07:dd:f5:02:72:37:dc:
    ab:93:26:4b:aa:cf:7e:08:29:8c:a2:0f:19:6d:ca:
    aa:4a:54:7f:4b:99:e1:50:99:2e:cd:30:f8:62:f9:
    9a:03:8a:24:40:00:f2:3a:d9:2d:4c:2c:94:0b:79:
    dd:85:1b:86:a7:8e:75:87:ea:79:58:09:9c:5d:8a:
    56:dd:0a:ea:0d:f0:f3:b8:53:32:e5:59:70:20:1f:
    c4:03:d7:d9:78:c4:d8:da:d5:a2:ff:b6:27:69:5a:
    98:0c:98:e1:42:fd:97:b9:e3:8c:8b:33:02:14:23:
    76:6f:2f:9b:95:cf:37:b9:db:8f:5c:94:29:5c:7a:
    d5:69
这是一个加密函数,我想用于对消息进行签名

public function encrypt ($m, $e, $n, $s=3) {
        $coded   = '';
        $max     = strlen($m);
        $packets = ceil($max/$s);

        for($i=0; $i<$packets; $i++){
            $packet = substr($m, $i*$s, $s);
            $code   = '0';

            for($j=0; $j<$s; $j++){
                $code = bcadd($code, bcmul(ord($packet[$j]), bcpow('256',$j)));
            }

            $code   = bcpowmod($code, $e, $n);
            $coded .= $code.' ';
        }

        return trim($coded);
    }
公共函数加密($m,$e,$n,$s=3){
$coded='';
$max=strlen(百万美元);
$packets=ceil($max/$s);

对于($i=0;$i),这可能会有帮助:运气不好(仍然无法创建正确的十进制值如果首先去掉
\n
?从概念上讲,获取十六进制字符串的值是一个简单的16次幂的倍数求和问题。公认的答案显示了基本逻辑。您应该能够对其进行更多调整。公钥和私钥在base64 f中为了获得签名消息,orm.module也应该是base64格式(module->decimal->base64)?我对PHP了解不多。显然需要进行某种转换。为什么要重新发明轮子?肯定有PHP库用于与SSL证书交互。