编程技术

PHP 之加密技术

cnguu · 10月23日 · 2018年

常见加密形式

  1. md5 加密算法
  2. crypt 加密算法
  3. sha1 加密算法
  4. url 编码加密技术
  5. base64 编码加密技术

md5

用例:

<?php
// 生成唯一文件名
echo md5(microtime(true)); // 482c1e2e1c4020cf87f767e039aa369f

crypt

<?php
echo crypt('cnguu');         // $1$d7.0rrgP$lvgkBU04BZIl/iZtR4Bix0
echo crypt('cngun', 'abcd'); // ab.2YxzXRyM2A
if (CRYPT_STD_DES) {
    echo 'DES  标准算法:' . crypt('cnguu', 'abcd');          // DES 标准算法:ab.2YxzXRyM2A(注:盐值最多 2 位)
}
if (CRYPT_MD5) {
    echo 'MD5 加密算法:' . crypt('cnguu', '$1$cnguu abcd$'); // MD5 加密算法:$1$cnguu ab$m8HKzXS79EnwW5FR9KhYC.(注:盐值最多 8 位)
}

sha1

与 md5 类似

url 编码

常用于解决 url 传参中文乱码和空格

urlencode

编码 URL 字符串

urldecode

解码已编码的 URL 字符串

base64 编码

解决中文在跨平台解析出错的问题

常见于 img 的 src=”data:image/jpg;base64…”

base64_encode

使用 MIME base64 对数据进行编码

base64_decode

对使用 MIME base64 编码的数据进行解码

总结

单项散列加密

  通过对不同输入长度的信息进行散列计算,得到固定长度的输出,这个散列计算过程是单向的,即不能对固定长度的输出进行计算从而获得输入信息。

对称散列加密

  加密和解密使用的密钥是同一个密钥或者可以相互推算。

非对称散列加密

  加密和解密使用的密钥不是同一个密钥,其中一个对外公开,被称作公钥,另一个只有所有者知道。

0 条回应