我有一个非常奇怪的情况。 基本上我有使用由以下创建的解密器的代码:
Dim des3 As New TripleDESCryptoServiceProvider
des3.Mode = CipherMode.CBC
Return des3.CreateDecryptor(_encKey, _initVec)
_encKey和_initVec是硬编码的。 我通过调用它来使用它:
Dim res() As Byte = decrypt(Convert.FromBase64String(_data))
m_transformDec.TransformFinalBlock(res, 0, res.Length)
这里_data是一个包含加密值的字符串。 m_transformDec是之前创建的Decryptor。
通常这有效。偶尔,我收到“错误数据”错误。我打印出_data的值,它总是一样的。
代码是多线程的,我怀疑是这两个问题的原因,并且很难重现。解密器是在创建类时创建的,解密是在Shared函数中完成的,但是我没有看到任何不是线程安全的东西。
有什么想法吗?
答案 0 :(得分:1)
des3
对象。