我有以下代码:
$Field = $FW->Encrypt("Test");
echo "<pre>";
print_r($Field);
echo "</pre>";
# $IV_Count = strlen($Field['IV']);
# $Key_Count = strlen($Field['Key']);
# $Cipher_Count = strlen($Field['CipheredText']);
foreach ($Field AS $Keys => $Values){
echo $Keys."Count = ".strlen($Values)."<br><br>";
}
输出如下:
Array ( [CipheredText] => x2nelnArnS1e2MTjOrq+wd9BxT6Ouxksz67yVdynKGI= [IV] => 16 [Key] => III#TcTf‡eB12T ) CipheredTextCount = 44 IVCount = 2 KeyCount = 16
无论输入如何,IV/KeyCount 总是返回相同的值。但是CipheredTextCount会根据输入而变化。例如:
$Field = $FW->Encrypt("This is a longer string");
foreach
循环返回:
密码文本计数 = 64
IVCount = 2
键数 = 16
现在我的问题。让我们以 TextCount 为 44 的第一个示例为例
如何拆分字符串implode("",$Field);
以显示为原始数组?一个例子是:
echo implode("",$Field);
哪个输出:
ijGglH/vysf52J5aoTaDVHy4oavEBK4mZTrAL3lZMTI=16III#TcTf‡eB12T
根据strlen
?
可以将第$Cipher_Count
一个的计数存储在数据库中以供参考
我当前的设置涉及将密钥和 IV 存储在远离密文字符串的单独列中。我需要将其包含在一个字段中,并且脚本处理所需的信息以执行以下操作:
检索长字符串 > 将字符串拆分到原始数组 > 将数组推送到另一个函数 > 解密 > 返回解码后的字符串。