- 单点登录在中的用户密码采用AES 128加密,加密模式为CBC
- 填充模式为:PKCS5Padding(当待加密内容的不足分组长度时以最后一下字节填充)
- 密码为16个字节,长于16个字节取前16个字节,不足时补充空字符
- 向量IV同密码,固定为16个字节,加密后输出为全16进制字符,字符集为UTF-8
- 明文:
abc
,密码:347c6161e79f4b6a8873202dd5fe7e8c
- 实际取前16个字节:
347c6161e79f4b6a
,向量IV也是 347c6161e79f4b6a
- 加密后的密文为:7E835488F203A2FDA19F626921C8588B
<?php function strToHex($string) { $hex = ""; for ($i = 0; $i < strlen($string); $i++) { $tmp = dechex(ord($string[$i])); $hex .= strlen($tmp) == 1 ? "0" . $tmp : $tmp; } $hex = strtoupper($hex); return $hex; } function addPkcs5Padding($string, $blocksize = 16) { //取得字符串长度 $len = strlen($string); //取得补码的长度 $pad = $blocksize - ($len % $blocksize); //用ASCII码为补码长度的字符, 补足最后一段 $string .= str_repeat(chr($pad), $pad); return $string; } $data = openssl_encrypt('abc', 'aes-128-cbc', addPkcs5Padding('347c6161e79f4b6a8873202dd5fe7e8c', '128'), true, '347c6161e79f4b6a'); var_dump(strToHex($data));