相关疑难解决方法(0)

使用PHP加密和解密密码的最佳方法?

可能重复:
PHP双向加密:我需要存储可以检索的密码

我计划在我的网站上为我的用户存储外国帐户信息,也就是用户名和密码等等...我想保证信息的安全,但我知道如果我散列他们的信息,我无法检索它以供以后使用.

Base64是可解密的,所以没有必要使用它只是简单的关闭.我的想法是加扰用户并在它解密之前和之后通过这种方式传递,如果你尝试解密,你会得到一些看起来很有趣的文本.是否有一个php函数接受将进行字符串的唯一加扰的值,并在以后重新计算该值时对其进行解扰?

有什么建议?

php encryption scramble mcrypt

216
推荐指数
4
解决办法
27万
查看次数

在PHP中加密字符串并在Node.js中解密

我通过Apache和Node.js服务器之间的不安全连接发送数据.我需要在PHP中加密数据并在Node.js中解密.我花了两天时间试图让它工作,但是我只是设法让消息签名工作,没有加密.我尝试通过AES128-CBC,AES256-CBC,DES,AES128,AES256作为算法,但没有什么效果好..

我在PHP中试过这个:

$data = json_encode(Array('mk' => $_SESSION['key'], 'algorithm' => 'SHA1', 'username' => $_SESSION['userid'], 'expires' => $expires));
$payload = openssl_encrypt($data, 'des', '716c26ef');
return base64_encode($payload);
Run Code Online (Sandbox Code Playgroud)

在Node.js中:

var enc_json = new Buffer(response[1], 'base64');
var decipher = crypto.createDecipher('des', '716c26ef');
var json = decipher.update(enc_json).toString('ascii');
json += decipher.final('ascii');
Run Code Online (Sandbox Code Playgroud)

除了错误的解密数据,我得到如下错误:

TypeError: error:0606508A:digital envelope routines:EVP_DecryptFinal_ex:data not multiple of block length

TypeError: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length
Run Code Online (Sandbox Code Playgroud)

我需要一个简单的加密,因为数据不是太敏感(没有密码或用户数据),但数据只能由收件人读取.密钥长度可以是任何东西,但加密/解密的过程必须尽可能简单,请不要使用IV.

javascript php encryption json node.js

9
推荐指数
2
解决办法
8629
查看次数

AES 在 PHP 中使用 OpenSSL 加密/在 Node.js 中解密

我正在使用 PHP 和 Nodejs 使用 OpenSSL 进行对称加密。PHP 使用 OpenSSL 库,Node.js 解密基于实现的加密。问题是 Node.js 中解密的文本只是部分正确

用于加密的 PHP 函数

function encrypt($text, $pw, $base64 = true) {

    $method = 'aes-256-cbc';
    $iv_len = openssl_cipher_iv_length($method);
    $iv = openssl_random_pseudo_bytes($iv_len);
    
    $pw = substr(md5($pw),0,32);

    $cipher =  openssl_encrypt ($text ,$method ,$pw ,!$base64 ,$iv );

    if($base64) {
            $pw = base64_encode($pw);
            $iv = base64_encode($iv);
        }

    return array(
        'iv' => $iv,
        'pw' => $pw,
        'text' => $text,
        'cipher' => $cipher
    );
}
Run Code Online (Sandbox Code Playgroud)

nodejs中的解密

var cipher = new Buffer(data.cipher, 'base64');
var iv …
Run Code Online (Sandbox Code Playgroud)

php node.js php-openssl

5
推荐指数
1
解决办法
7958
查看次数

标签 统计

php ×3

encryption ×2

node.js ×2

javascript ×1

json ×1

mcrypt ×1

php-openssl ×1

scramble ×1