VB 3DES 加密后无法检索字符串
VB Unable to retrieve string after 3DES encryption
初始条件:
Private TheKey() As Byte = {1, 2, 3, 4, 5, 6, 7, 8}
Private Vector() As Byte = {&H7C, &H22, &H2F, &HB2, &H92, &H7D, &H82, &H8A}
然后我继续加密字符串:"asd"(不带引号)使用:
CryptoStream(ms, des.CreateEncryptor(TheKey, Vector), CryptoStreamMode.Write)
输入:asd
输出:82804AD2B295E9E3
当我尝试在 http://tripledes.online-domain-tools.com/ 上使用相同的 key/vector 加密相同的字符串时,如下所示(由于信誉原因,无法 post 图像):
online 3DES encryption
我得到了不同的结果。
我的最终目标是在 C 应用程序中解密此输出。但是两个 3DES 加密器给出 2 个不同的结果是一个表演障碍。关于可能导致这种情况的原因有什么想法吗?
提前致谢!
用其他 "oracle" 测试你的加密货币是个好主意。但是您使用在线工具有两个明显的问题:
- 密钥应该以十六进制而不是文本形式给出(VB 代码有一个字节数组)。大概是0102030405060708
- 3DES 是算法,但 VB 代码使用经典 DES - 有一个单独的 TripleDESCryptoServiceProvider 用于 3DES
但是该站点为我提供了 DES 和 3DES 的相同加密文本,所以它可能不是可靠的预言机?尝试另一个,但可能需要使用纯文本密钥(我看到的前两个没有以任何明显的方式提供十六进制输入)
初始条件:
Private TheKey() As Byte = {1, 2, 3, 4, 5, 6, 7, 8}
Private Vector() As Byte = {&H7C, &H22, &H2F, &HB2, &H92, &H7D, &H82, &H8A}
然后我继续加密字符串:"asd"(不带引号)使用:
CryptoStream(ms, des.CreateEncryptor(TheKey, Vector), CryptoStreamMode.Write)
输入:asd
输出:82804AD2B295E9E3
当我尝试在 http://tripledes.online-domain-tools.com/ 上使用相同的 key/vector 加密相同的字符串时,如下所示(由于信誉原因,无法 post 图像):
online 3DES encryption
我得到了不同的结果。
我的最终目标是在 C 应用程序中解密此输出。但是两个 3DES 加密器给出 2 个不同的结果是一个表演障碍。关于可能导致这种情况的原因有什么想法吗?
提前致谢!
用其他 "oracle" 测试你的加密货币是个好主意。但是您使用在线工具有两个明显的问题:
- 密钥应该以十六进制而不是文本形式给出(VB 代码有一个字节数组)。大概是0102030405060708
- 3DES 是算法,但 VB 代码使用经典 DES - 有一个单独的 TripleDESCryptoServiceProvider 用于 3DES
但是该站点为我提供了 DES 和 3DES 的相同加密文本,所以它可能不是可靠的预言机?尝试另一个,但可能需要使用纯文本密钥(我看到的前两个没有以任何明显的方式提供十六进制输入)