使用OpenSSL替代MCrypt实现AES加解密

MCrypt实现AES加解密

<?php

define( "KEY", "16位" );
define( "IV", "16位" );

function aes_encode( $sourcestr ) {
    return base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_128, KEY, $sourcestr, MCRYPT_MODE_CBC, IV ) );
}

function aes_decode( $crypttext ) {
    return mcrypt_decrypt( MCRYPT_RIJNDAEL_128, KEY, base64_decode( $crypttext ), MCRYPT_MODE_CBC, IV );
}

$source = '{"token": "asdf"}';
echo aes_encode($source);


echo PHP_EOL;

$source ='mWjO06XV8BwMAJG1uKX+N8ITdkuHyPxRFepTYZNNeQU=';
echo aes_decode($source);
复制代码

OpenSSL实现AES加解密

<?php

define( "KEY", "16位" );
define( "IV", "16位" );

function aes_encode( $sourcestr ) {
    $padded_data = $sourcestr . str_repeat(chr(0), 16 - (strlen($sourcestr) % 16));
    return  base64_encode(openssl_encrypt($padded_data, 'aes-128-cbc', KEY, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, IV));
}

function aes_decode( $crypttext ) {
    return trim(openssl_decrypt(base64_decode($crypttext), "aes-128-cbc", KEY, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, IV));
}


$source = '{"token": "asdf"}';
var_dump(aes_encode($source));

$tmp = 'mWjO06XV8BwMAJG1uKX+N8ITdkuHyPxRFepTYZNNeQU=';
var_dump(aes_decode($tmp));
复制代码

特殊说明: KEY的长度不同会影响到OpenSSLaes-x-cbc是选择128,192还是256。

KEY的长度aes-x-cbc
16aes-128-cbc
24aes-192-cbc
32aes-256-cbc

转载于:https://juejin.im/post/5b6014b6e51d451757327d8f

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值