base64_encode是否会生成唯一的数据?
base64_encode是否会生成唯一的数据?
这个问题已经在这里有答案了:
嗨,我的问题是,每次运行脚本时,base64_encode是否都提供唯一的数据?
以下是代码。
如果它不提供每次唯一的数据,那么编码字符串并传递URL有什么意义?这会使URL变得更安全吗?
admin 更改状态以发布 2023年5月23日
Base64编码不提供唯一的数据,它的目的是以字符串形式提供二进制数据的紧凑表示。在您的示例中,您正在对非二进制数据进行编码,因此不太实用。但是,如果您想要对包含换行符和标点符号的字符串进行编码并通过URL传递,您不能直接发送二进制数据。
例如,如果您有字符串Hello,World!!\n
,则会有三个标点符号,一个空格和一个换行符,所有这些都需要进行URL编码。这样做的结果是:
Hello%2C+World%21%21%0A
长度为23个字节。
另一方面,如果您将相同的字符串进行Base64编码,则结果将是:
SGVsbG8sIFdvcmxkISEK
长度为20个字符,约为13%更短。如果您有大量的非字母数字字符或大量数据,这会快速累加。
因此,Base64编码的主要优点是更紧凑地表示某些数据。
Base64编码不是加密的一种方法。它被用于将二进制数据编码成文本,这样在互联网上传输更安全。
如果你流传比特,一些协议可能会解释不同。流传文本要可靠得多。
如果你需要真正的加密,你需要使用一些基于可以从其他用户隐藏的盐进行哈希的东西,例如mcrypt库。