有没有一种方法可以将我的密码箱2密码文本转换为密码箱3密码文本。
我们正在将基于Delphi 2007构建的应用程序迁移到Delphi xe2,我们在Delphi 2007中使用了Lockbox 2 RSA加密算法,并且打算在Delphi xe2中使用Lockbox 3支持Unicode数据。由于Xe2支持Unicode数据,因此两者生成的密文不同,因此我们面临一个问题。因此,我们希望以某种方式将Lockbox 2生成的密文转换为LockBox 3。
最佳答案
由于根据定义您的密文是无法识别的,因此没有简单的方法来判断基础明文数据是Ansi还是Unicode...。因此您可能需要管理新的关联属性。
显然,这取决于您的应用程序的布局以及此数据的存储位置以及如何升级客户端,但是可能存在某种与存储的密文相关联的新版本标志。如果在本地表中,则为PlainTextVersion添加一个新列,并将版本设置为某个值,以标记密文是从Unicode明文保存的。当读取密文并且此新字段与Unicdoe标志不匹配时,您可以通过解密和使用Unicode纯文本加密来升级密文,然后重新保存密文并设置新标志(或简单地推迟密文)版本升级,直到明文更改并需要更新为止。)
或者,更好的是,如果可行,一次自动升级所有当前密文。
关于delphi - 将Lockbox2密文转换为Lockbox3密文,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9821170/