1
我有一个很奇怪的情况。 基本上我有使用由创建的解密的代码:解密时偶尔坏数据错误
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函数中完成的,但是我没有看到任何不是线程安全的。
任何想法?