【发布时间】:2010-09-06 06:28:45
【问题描述】:
我们的产品中存在这样一种情况,即长期以来,一些数据作为 SQL 字符串(选择 MS SQL 服务器或任何位置的 sybase SQL)存储在应用程序的数据库中,这些数据通过 Windows API 函数CryptEncrypt.(直接和可解密)
问题在于 CryptEncrypt 可以在输出中产生 NULL,这意味着当它存储在数据库中时,字符串操作会在某些时候截断 CipherText。
理想情况下,我们希望使用生成不包含 NULL 的 CipherText 的算法,因为这将对现有数据库造成最少的更改(将列从字符串更改为二进制,并改为处理二进制的代码字符串),只需在数据库升级时解密现有数据并使用新算法重新加密。
算法不需要是最安全的,因为数据库已经处于相当安全的环境中(不是开放网络/互联网),但确实需要比 ROT13 更好(我几乎可以解密现在在我的脑海里!)
编辑:顺便说一句,将密文更改为密文的任何特殊原因?密文似乎使用更广泛...
【问题讨论】:
标签: c++ encryption winapi