【发布时间】:2018-08-01 22:53:36
【问题描述】:
我在解密时遇到问题,当前输出返回一个字节数组,但是当我尝试通过 base64、UTF8、Ascii 或 Unicode 将其转换为字符串时,该字符串只是乱码,创建了一个私有和公共使用openssl的密钥并用它来生成密钥对,任何关于在哪里查找的建议都会有所帮助,以此为基础,这个git repo测试类的私钥似乎在解密时也能正常工作,例如,这个私钥似乎工作正常。
“MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgCPSuFr4iSIaQprjj” + “chHPyDu2NXFe0vDBoTpPkYaK9dehRANCAATnaFz / vQKuO90pxsINyVNWojabHfbx” + “9qIJ6uD7Q7ZSxmtyo / EZ3 / o2kDT8g0pIdyVIYktCsq65VoQIDWSh2Bdm” P>
但是我生成的这个没有。
ME0CAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEMzAxAgEBBCAn0M1F8ej/KhDm2VpEJZtMXGRpwa73m5k3J/D+5Va9RaAKBggqhkjOPQMBBw==
open ssl to generate keys:
privatekey:
openssl pkcs8 -topk8 -inform PEM -outform DER -in key.pem -nocrypt | base64 | paste -sd "\0" -
publickey:
openssl ec -in key.pem -pubout -text -noout 2> /dev/null | grep "pub:" -A5 | sed 1d | xxd -r -p | base64 | paste -sd "\0" -
https://github.com/chengbo/ApplePayAndroidPayDecryption/blob/master/Decryption/TokenDecrypter.cs
KeyParameter keyparam = ParameterUtilities.CreateKeyParameter("AES", encryptionKeyBytes);
ParametersWithIV parameters = new ParametersWithIV(keyparam, symmetricIv);
IBufferedCipher cipher = GetCipher();
cipher.Init(false, parameters);
try
{
output = cipher.DoFinal(cipherData);
}
catch (Exception ex)
{
throw new ApplicationException("Invalid Data", ex);
}
【问题讨论】:
-
我不知道你的目标是什么。您可以更新问题以说明您正在尝试做什么,然后描述您的尝试出错的地方。即,向我们展示与预期不符的输出,并告诉我们您的预期。
标签: c# cryptography bouncycastle