Php 自定义加密/解密函数中的随机结果

Php 自定义加密/解密函数中的随机结果,php,encryption,Php,Encryption,我正在尝试通过我创建的自定义函数加密数据。。。(基于base64) 代码可以工作,但在一定程度上。。。它给出随机结果(有时有效,有时无效) 因为它只是为了好玩,所以这一变化似乎使它起作用: // Replace the input text with the results from $array $encrypted = ''; foreach($text_chars as $text_char){ //$data = str_replace($text_char,$array[$te

我正在尝试通过我创建的自定义函数加密数据。。。(基于base64) 代码可以工作,但在一定程度上。。。它给出随机结果(有时有效,有时无效)


因为它只是为了好玩,所以这一变化似乎使它起作用:

// Replace the input text with the results from $array
$encrypted = '';
foreach($text_chars as $text_char){
    //$data = str_replace($text_char,$array[$text_char], $data);
     $encrypted .= $array[$text_char];
}
在循环中运行
str_replace
,将替换先前被替换的数据

除此之外,为了简化加密数据的传输,我将更改:

return $solution."BREAKHERE".gzcompress(base64_encode($data),9);
致:


然后在解密程序中进行适当的更改。压缩数据可以有空字符和不可打印字符,因此如果您对整个结果进行base64编码,您可以更轻松地传递它。

如果您不注释代码,没有人能够遵循您的思路,因此没有人能够帮助您。不知道它是做什么的,我想知道
md5(uniqid(rand(),true))
是做什么的。当使用了您无法再访问的随机数据时,您希望如何将其返回。我添加了注释。是的,‘md5(uniqid(rand(),true))’是用来取回数据的!在第一天的课堂上,一位密码学老师告诉我们,永远不要创建自己的加密函数,因为它们有缺陷并且会被破坏。我建议使用并避免任何问题。除此之外,该函数中没有任何东西实际进行任何加密,您将“密钥”与数据一起存储,因此,在有人了解其工作原理之前,这只是一个很短的时间问题。“密钥”可以单独存储。但我完全同意你,只是为了好玩。。。不是什么严重的事。。。
return $solution."BREAKHERE".gzcompress(base64_encode($data),9);
return base64_encode($solution."BREAKHERE".gzcompress($data,9);