Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPSecLIB加密字符串和VB.NET解密字符串_Php_Vb.net_Rsa_Phpseclib - Fatal编程技术网

PHPSecLIB加密字符串和VB.NET解密字符串

PHPSecLIB加密字符串和VB.NET解密字符串,php,vb.net,rsa,phpseclib,Php,Vb.net,Rsa,Phpseclib,我正在PHPSECLIB和VB.NET中使用RSA加密。PHP的代码是: <?php include('Crypt/RSA.php'); $rsa = new Crypt_RSA(); $key='-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0 FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5

我正在PHPSECLIB和VB.NET中使用RSA加密。PHP的代码是:

<?php
include('Crypt/RSA.php');

$rsa = new Crypt_RSA();
$key='-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0
FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/
3j+skZ6UtW+5u09lHNsj6tQ51s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQAB
-----END PUBLIC KEY-----';
$rsa->loadKey($key); // public key

$plaintext = 'HELLO';
//$rsa->setEncryptionMode(CRYPT_RSA_PUBLIC_FORMAT_PKCS1);
$rsa->paddable = false;
$ciphertext = $rsa->encrypt($plaintext);

echo base64_encode($ciphertext);
?>

VB.NET代码:

  Public Function DecryptText(ByVal Str As String) As String
        Try

            'Convert data to byte array
            Dim Enc As Encoding = Encoding.UTF8
            Dim dataToDecrypt() As Byte = Convert.FromBase64String(Str)


            'Make our RSA Container
            Dim RSA As New RSACryptoServiceProvider

            'Import PRIVATE key into container
            RSA.FromXmlString("<RSAKeyValue><Modulus>AKoYq6Q7UN7vOFmPr4fSq2NORXHBMKm8p7h4JnQU+quLRxvYll9cn8OBhIXq9SnCYkbzBVBkqN4ZyMM4vlSWy66wWdwLNYFDtEo1RJ6yZBExIaRVvX/eP6yRnpS1b7m7T2Uc2yPq1DnWzVI+sIGR51s1/ROnQZswkPJHh71PThln</Modulus><Exponent>AQAB</Exponent><P>AN4DDp+IhBca6QEjh4xlm3iexzLajXYrJid6vdWmh4T42nar5nem8Ax39o3ND9b1Zoj41F9zFQmuZ8/AgabreKU=</P><Q>AMQi+R0G9m0K+AcqK3DFpv4RD9jGc0Tle98heNYT7EQvZuuiq4XjvRz0ybqN//bOafrKhsTpRS9DQ7eEpKLI4Bs=</Q><DP>FklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5kX6zk7S0ljKtt2jny2+00VsBerQ==</DP><DQ>AJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2eplU9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhM=</DQ><InverseQ>EaiK5KhKNp9SFXuLVwQalvzyHk0FhnNZcZnfuwnlCxb6wnKg117fEfy91eHNTt5PzYPpf+xzD1FnP7/qsIninQ==</InverseQ><D>Fijko56+qGyN8M0RVyaRAXz++xTqHBLh3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxE=</D></RSAKeyValue>")

            'Decrypt the data
            Dim decryptedData() As Byte = RSA.Decrypt(dataToDecrypt, False)

            'Convert output byte array to a string
            DecryptText = Enc.GetString(decryptedData)



        Catch ex As Exception
            Return ""

        End Try
    End Function
公共函数将文本(ByVal Str作为字符串)解密为字符串
尝试
'将数据转换为字节数组
Dim Enc As Encoding=Encoding.UTF8
Dim DATATOTODECRYPT()为Byte=Convert.FromBase64String(Str)
'制作我们的RSA容器
Dim RSA作为新的RSA CryptoServiceProvider
'将私钥导入容器
RSA.FromXmlString("4.答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案答案VZUUIQ4XJVRZ0YBQN//Boafrkhstrs9DQ72)参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考答案2 2 2)2 2 2 2 2 2 2。2)参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考参考答案2 2 2 2 2 2 2 2 2 2 2 2。参考参考参考参考2 2。参考2 2 2。参考参考参考参考参考参考参考2 2 2 2。参考参考2 2 2。参考参考2 2。参考参考2 2。参考参考2。参考参考2 2。参考参考2 2。参考参考参考2。参考参考2 2。参考参考2 2。参考2。参考2。参考2 OTWO23Kmbaujgsynrmobzm3LMFTKevIkAidPExvYCdm5dYq3XToLkkLv5L2pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxE=“)
"解密数据,
Dim decryptedData()为Byte=RSA.Decrypt(dataToDecrypt,False)
'将输出字节数组转换为字符串
DecryptText=Enc.GetString(decryptedData)
特例
返回“”
结束尝试
端函数

我遇到的问题是,每次我从PHP复制Base64输出并将其转存到VB.NET DecryptText函数中时,我都会得到一个空白结果,错误是“坏数据”。有人能给我指出正确的方向吗?

我强烈怀疑
$rsa->setEncryptionMode(CRYPT\u rsa\u PUBLIC\u FORMAT\u PKCS1);
需要取消注释

另外,
$rsa->paddable=false
…这没有任何作用。paddable不是Crypt\u rsa使用的变量。
Crypt\u Base
定义了它,但
Crypt\u rsa
没有扩展
Crypt\u Base