【发布时间】:2011-08-29 19:31:10
【问题描述】:
我需要在一台计算机上加密文件,然后使用 PHP 在另一台计算机上打开它,而无需外部库。该代码应该可以在 PHP4 和 PHP5 上运行。
加密函数对字符串进行str_split,并使用密码的str_split对每个字符(ord)进行编码。然后它生成 chr,我得到二进制数据。此二进制数据使用 base64_encode 编码,我得到 ascii 字符串。
我将此文件传输到另一台知道密码的计算机。 我制作 base64_decode 并进行解密。
有时会出现此问题,因为第一台计算机具有 ASCII default_charset,而第二台计算机具有 UTF-8。 这就是为什么 nth-char $temproraryBinaryString[$n-1] 在这些计算机上可能有不同的值。
如果我无法在任何一台计算机上控制 php.ini,我可以要求 PHP 将所有字符串都视为 ASCII 吗?
【问题讨论】:
-
不要重新发明轮子,而是使用现有的加密算法。
标签: php string encryption unicode ascii