吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 925|回复: 4
收起左侧

[求助] java aes的php版本求助

[复制链接]
Small_Google 发表于 2021-4-22 14:44
image.png

这是一个java生成一个128的对称密钥,可是php版本的咋写?
这样写好像不是:
[PHP] 纯文本查看 复制代码
$strEncode = base64_encode(openssl_random_pseudo_bytes(128));
return $strEncode;



有前辈告知一下嘛。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wychao 发表于 2021-4-22 15:55
PHP 可以使用 openssl_encrypt ;
参考:
https://www.php.net/manual/zh/function.openssl-encrypt.php
https://www.php.net/manual/zh/function.openssl-get-cipher-methods.php
 楼主| Small_Google 发表于 2021-4-22 16:00
wychao 发表于 2021-4-22 15:55
PHP 可以使用 openssl_encrypt ;
参考:
https://www.php.net/manual/zh/function.openssl-encrypt.php

这是加密,我要的是生成对称密钥。
kanlai 发表于 2021-4-22 16:05
[PHP] 纯文本查看 复制代码
class Aes
{

    protected string $method;
    protected string $secret_key;
    protected string $iv;
    protected mixed $options;

    /**
     * 构造函数
     *
     * [url=home.php?mod=space&uid=952169]@Param[/url] string $key 密钥
     * @param string $method 加密方式
     * @param string $iv iv向量
     * @param mixed $options 还不是很清楚
     *
     */
    public function __construct($key='1BA55BB7CFF1ED8A', $method = 'AES-128-ECB', $iv = '', $options = 0)
    {
        $this->secret_key = $key ?? '';
        $this->method = $method;
        $this->iv = $iv;
        $this->options = $options;
    }

    /**
     * 加密方法,对数据进行加密,返回加密后的数据
     * @param string $data 要加密的数据
     * [url=home.php?mod=space&uid=155549]@Return[/url] string
     */
    public function encrypt(string $data): string
    {
        return (openssl_encrypt($data, $this->method, $this->secret_key, $this->options, $this->iv));
    }

    /**
     * 解密方法,对数据进行解密,返回解密后的数据
     * @param string $data 要解密的数据
     * @return string
     */
    public function decrypt(string $data): string
    {
        return openssl_decrypt(trim($data), $this->method, $this->secret_key, $this->options, $this->iv);
    }
}
小迷糊 发表于 2021-4-22 17:26
[PHP] 纯文本查看 复制代码
public static function getAesEcb128($data, $crypt_key="8GH5z")
    {
        $result =  openssl_decrypt(base64_decode($data), 'aes-128-ecb', base64_decode($crypt_key), OPENSSL_RAW_DATA);
        return $result ? $result : $data;
    }

    public static function setAesEcb128($data, $crypt_key="8GH5z")
    {
        return base64_encode(openssl_encrypt($data, 'aes-128-ecb', base64_decode($crypt_key), OPENSSL_RAW_DATA));
    }
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 04:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表