【问题标题】:Output size of mcrypt_encryptmcrypt_encrypt 的输出大小
【发布时间】:2013-03-02 08:26:07
【问题描述】:

我有一个带有 name 字段的表格。我想将名称数据加密存储到字段中。 名称可以是 128 个字符。那么字段的类型应该是什么(例如:varchar(256) 或 text)。

我用于加密/解密的以下函数。

<?php

$salt ='whatever_you_want';

function simple_encrypt($text) {
    return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}

function simple_decrypt($text) {
    return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $salt, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}

【问题讨论】:

  • 为什么不在您的代码中运行几个 128 个字符长度的字符串,显示输出的最大大小并相应地设置您的字段长度?
  • @HankyPankyㇱ 我认为输入+键和输出之间会有一些关系。我担心实验不会给出准确的输出大小。
  • 是的,我同意,但是一旦密钥由程序员决定,它将保持不变,否则如果密钥不断变化,解密将无法工作
  • @HankyPankyㇱ 是的,密钥大小是恒定的。
  • 密钥大小实际上与块大小没有直接关系。

标签: php encryption base64 mcrypt


【解决方案1】:

为什么不在您的代码中运行几个 128 个字符长度的字符串,显示输出的最大大小并相应地设置您的字段长度?使用这个现有的密钥,它每次都返回172 长度。

<?php

function rand_string( $length ) {
    $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";  

    $size = strlen( $chars );
    for( $i = 0; $i < $length; $i++ ) {
        $str .= $chars[ rand( 0, $size - 1 ) ];
    }

    return $str;
}


$salt ='whatever_you_want';

function simple_encrypt($text) {
    return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}

function simple_decrypt($text) {
    return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $salt, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
}



for($i=0;$i<100;$i++)
{
$word=rand_string(128);
$e=simple_encrypt($word);
echo strlen($e)."<br>";
}

?>

【讨论】:

    猜你喜欢
    • 2015-03-13
    • 2015-09-16
    • 1970-01-01
    • 2018-08-18
    • 2016-11-03
    • 2018-07-02
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    相关资源
    最近更新 更多