gpt4 book ai didi

cookies - RIJNDAEL 加密对于提供给用户的少量文本是否安全?

转载 作者:行者123 更新时间:2023-12-04 16:25:10 26 4
gpt4 key购买 nike

我正在考虑切换到将 session 数据存储在加密的 cookie 中,而不是在我的服务器上的某个地方。虽然这将导致每个请求使用更多带宽 - 它将节省额外的数据库服务器负载和存储空间。

无论如何,我计划使用 RIJNDAEL 加密 cookie 内容。 256.

function encrypt($text, $key) 
{
return mcrypt_encrypt(MCRYPT_RIJNDAEL_256,$key,$text,MCRYPT_MODE_ECB,mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,MCRYPT_MODE_ECB),MCRYPT_RAND));
}

使用哪个会产生这样的东西(base64编码用于显示)
print base64_encode(encrypt('text', 'key'));

7s6RyMaYd4yAibXZJ3C8EuBtB4F0qfJ31xu1tXm8Xvw=

我并不担心单个用户的 cookie 会被泄露,因为我担心攻击者会发现 key并且能够构建 任何用户的任何 session 因为他们知道我用什么来签署数据。

有没有一种方法可以验证与使用的参数相关的估计开裂时间?或者是否有与所使用的文本或键的大小相关的标准时间度量?

我听说有人说 key 本身需要超过 256 位才能安全地与 RIJNDAEL 一起使用。我还想知道加密文本的长度是否需要一定的长度,以免泄露 key 。

数据一般会在200个字符左右
a:3{s:7:"user_id";i:345;s:5:"token";s:32:"0c4a14547ad221a5d877c2509b887ee6";s:4:"lang";s:2:"en";}

那么这样安全吗?

最佳答案

是的 Rijndael(AES) 是安全的,但是您的实现远非安全。您的实现有 2 个悬而未决的问题。 ECB 模式的使用和您的 IV 是一个静态变量,将用于所有消息。 An IV must always be a Cryptographic Nonce .您的代码明显违反了 CWE-329。

永远不应使用 ECB 模式,必须使用 CBC 模式,原因如下:

原来的:

alt text

使用 ECB 模式加密:

alt text

使用 CBC 模式加密:

alt text

关于cookies - RIJNDAEL 加密对于提供给用户的少量文本是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4060364/

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