gpt4 book ai didi

algorithm - 加密字符串长度

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:20:27 25 4
gpt4 key购买 nike

我需要创建一个数据库列,用于存储使用 Triple DES 加密的字符串。如何确定加密字符串列的长度?

(也欢迎回答 Triple DES 以外的算法。)

最佳答案

DES、3DES 和 AES 等分组密码只能对字节 block 进行运算。 DES 和 3DES 对 8 字节的 block 进行操作,AES 对 16 字节的 block 进行操作。

为解决此问题,您通常会在加密前对明文应用可逆填充。它通常总是“PKCS”填充(也称为 PKCS5 或 PKCS7 填充)。

PKCS 填充至少添加一个字节,使得填充文本的长度可以被 block 长度整除(3DES 为 8 个字节)。 padding-bytes 的值是添加的字节数。外汇。 ABCDEF 填充为 ABCDEF0505050505,0011223344556677 填充为 0011223344566770808080808080808。请注意,这很容易删除:您只需查看填充字节的最后一个字节,验证它是否介于 1 和 block 长度之间,然后删除该字节数从最后开始(验证每个删除的字节都具有正确的值)。

最后,回答您的问题:假设您使用的是带有 CBC 加密和 PKCS 填充的 3DES - 您可能是 - 长度为 n 的字符串的加密长度为:

n + 8 - (n % 8)

关于algorithm - 加密字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/457193/

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