小编Jam*_*mad的帖子

MCrypt rijndael-128到OpenSSL aes-128-ecb转换

由于Mcrypt已被弃用,我想在我的代码中使用OpenSSL,因为我们已经在我们的服务器中使用了PHP 7.0.17并且没有告诉他们何时升级它.

某些第三方API(可能在PHP 5.x上托管并使用mcrypt)正在使用加密数据.他们提供了用于加密/解密字符串的方法.

他们是这样的

$secret = 'a0a7e7997b6d5fcd55f4b5c32611b87c' ;

public function encrypt128($str)
    {
        $block = mcrypt_get_block_size("rijndael_128", "ecb");
        $pad   = $block - (strlen($str) % $block);
        $str .= str_repeat(chr($pad), $pad);

        return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $secret, $str, MCRYPT_MODE_ECB));
    }

public function decrypt128($str)
    {
        $str = base64_decode($str);
        $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $secret, $str, MCRYPT_MODE_ECB);

        $len = strlen($str);
        $pad = ord($str[$len - 1]);

        return substr($str, 0, strlen($str) - $pad);
    }
Run Code Online (Sandbox Code Playgroud)

small1如果加密,使用这些方法字符串v7IXp5vVaFVXXlt/MN8BVw==


我们希望openssl_encrypt在我们这边使用,如果我们用OpenSSL加密相同的字符串,它必须给出与Mcrypt相同的结果.我研究过使用rijndael-128模式的mcrypt ecb应该与OpenSSL兼容aes-128-ecb. …

php encryption cryptography mcrypt php-openssl

14
推荐指数
2
解决办法
1万
查看次数

使用用户名而不是电子邮件进行 JWTAuth 身份验证

有什么方法可以在 laravel jwt-auth中使用用户名(或任何自定义列)而不是电子邮件进行身份验证?

这是现有的代码

public function authenticate(Request $request)
{
    $credentials = $request->only('email', 'password');

    try {
        // verify the credentials and create a token for the user
        if (! $token = JWTAuth::attempt($credentials)) {
            return response()->json(['error' => 'invalid_credentials'], 401);
        }
    } catch (JWTException $e) {
        // something went wrong
        return response()->json(['error' => 'could_not_create_token'], 500);
    }

    // if no errors are encountered we can return a JWT
    return response()->json(compact('token'));
}
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情

$credentials = $request->only('username', 'password');
Run Code Online (Sandbox Code Playgroud)

一种方法是将用户名放在 …

php authentication api laravel

6
推荐指数
1
解决办法
5320
查看次数