php 单点登录中 AES加密

  • 单点登录在中的用户密码采用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));
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值