gpt4 book ai didi

c++ - CryptEncrypt 的合适替代品

转载 作者:搜寻专家 更新时间:2023-10-31 01:24:06 26 4
gpt4 key购买 nike

在我们的产品中有这样一种情况,很长一段时间以来,一些数据作为 SQL 字符串(选择 MS SQL 服务器或 sybase SQL)存储在应用程序的数据库中,这些数据是通过 Windows API 函数加密的 CryptEncrypt. (直接和可解密)

问题是 CryptEncrypt 可以在输出中产生 NULL,这意味着当它存储在数据库中时,字符串操作将在某个时候截断 CipherText。

理想情况下,我们希望使用一种算法来生成不包含 NULL 的 CipherText,因为这将对现有数据库造成最少的更改(将列从字符串更改为二进制,并将代码改为处理二进制字符串),只需解密现有数据并在数据库升级时使用新算法重新加密。

算法不需要是最安全的,因为数据库已经处于相当安全的环境中(不是开放网络/网络间)但确实需要比 ROT13 更好(我几乎可以解密现在在我的脑海里!)

编辑:顺便说一句,将密文更改为密文有什么特别的原因吗?密文似乎使用更广泛...

最佳答案

任何半正派的算法最终都很有可能在生成的密文中的某处生成 NULL 值。

为什么不做类似 base-64 encode 的事情呢?在持久化到数据库之前生成的二进制 blob? (sample implementation in C++)。

关于c++ - CryptEncrypt 的合适替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com