如何更改加密密钥并仍然能够解密旧数据?

发布于 2024-12-07 02:30:35 字数 158 浏览 3 评论 0原文

我需要在 C# 中创建一个对称密钥并使用它来加密一个字符串,最终将其存储在数据库中。我将使用.Net 中的 AES 机制来实现这一点。我将使用相同的密钥来解密加密的数据。

现在我的要求是,如果我有一个更改密钥的机制。如何确保我可以使用新创建的密钥来解密使用旧密钥或过期密钥加密的字符串?

I would need to create a symmetric key in C# and use it to encrypt a string, which I would eventually store in a database. I would use the AES mechanism in .Net to achieve this. I would use the same key to decrypt the encrypted data.

Now my requirement is that if I have a mechanism to change the key. How can I ensure that I can use the newly created key to be used to decrypt the strings encrypted with the old or expired key?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤云独去闲 2024-12-14 02:30:35

每次密钥更改时,数据库中的所有内容都必须解密,然后使用新密钥重新加密。

编辑 -

根据您的评论, Key_Source 和 Identity_Value 正在做的是创建一个永不更改的密钥,然后加密该密钥并定期更改该外层。我不建议您自己实现此操作,因为很难正确保护主密钥,并且如果您正在使用 MS SQL 数据库,则只需使用 MS SQL 中内置的密钥系统即可。

Everything in the database must be decrypted then re-encrypted with the new key every time the key changes.

EDIT--

Per your comment, what Key_Source and Identity_Value is doing is creating a key that never changes then encrypting that key and changing that outer layer on regular intervals. I would not recommend implementing this yourself, as it is very hard to secure that master key correctly, and just use the key system built in to MS SQL if that is the database you are using.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文