Livecode mergAESEncryptWithKey函数

问题描述 投票:-1回答:1

我想使用mergAESEncryptWithKey pData,pKey,pIV,[pMode],[pKeySize],[pPadding]对实时代码中的数据进行加密。然后将加密的数据发布到php。 PhP使用相同的功能解密数据,对数据进行处理,然后加密结果并将其发布到实时代码中。 Livecode然后从php解密数据

我的PHP代码看起来像这样(效果很好)

 function encrypt($plaintext, $salt) {
    $method = "AES-256-CBC";
    $key = hash('sha256', $salt, true);
    $iv = openssl_random_pseudo_bytes(32);

    $ciphertext = openssl_encrypt($plaintext, $method, $key, $iv);
    $hash = hash_hmac('sha256', $ciphertext . $iv, $key, true);

    return $iv . $hash . $ciphertext;
}

function decrypt($ivHashCiphertext, $salt) {
    $method = "AES-256-CBC";
    $iv = substr($ivHashCiphertext, 0, 32);
    $hash = substr($ivHashCiphertext, 32, 48);
    $ciphertext = substr($ivHashCiphertext, 64);
    $key = hash('sha256', $salt, true);

    //if (!hash_equals(hash_hmac('sha256', $ciphertext . $iv, $key, true), $hash)) return null;

    return openssl_decrypt($ciphertext, $method, $key, $iv);
}

echo $encrypted."</br>";
echo "----------------------------The message is:<br/>";


echo decrypt($encrypted, 'hashsalt');
php livecode
1个回答
0
投票

对于大多数不知道但仍然想发表无所作为的评论的人,我想通了。 @Sammitch和@Mark提出问题并不意味着某人是愚蠢的。

    /*
* Encrypt or decrypt data using 
* AES-256-CBC
*/
function encrypt_decrypt($mode,$data,$key,$salt){
    //define the cipher method 
    $ciphering = "AES-256-CBC"; 
    // Use OpenSSl Encryption method. This works on PHP 7.2 and above
    $iv_length = openssl_cipher_iv_length($ciphering); 
    $options = 0; 

    if($mode=="encrypt"){
        // Use openssl_encrypt() function to encrypt the data 
        $Data = openssl_encrypt($data, $ciphering, $key, $options, $salt);  
    }else{
        // Use openssl_decrypt() function to decrypt the data 
        $Data = openssl_decrypt($data, $ciphering, $key,$options, $salt);
    }



    return $Data;
}

哦,这是现场直播的代码

//encrypt
encrypt tString using "aes-256-cbc" with key theKey and IV saltHash at 256 bit

//decrypt
decrypt base64Decode(varEnc) using "aes-256-cbc" with key theKey and IV saltHash at 256 bit
© www.soinside.com 2019 - 2024. All rights reserved.