【问题标题】:How to decode a string in base64 with php如何使用 php 解码 base64 中的字符串
【发布时间】:2021-11-24 10:11:27
【问题描述】:

您好,我正在尝试用 php 解密 base64 字符串,但我无法弄清楚。

我可以使用下面的代码使用 CryptoJS 使用 JavaScript 解密它

var data = 'encrypted_url';
var key = "my_token";

function decryptByDES(cipherTextString, keyString) {
  var keyHex = CryptoJS.enc.Utf8.parse(keyString);

  var decrypted = CryptoJS.DES.decrypt({
    ciphertext: CryptoJS.enc.Base64.parse(cipherTextString)
  }, keyHex, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  return decrypted.toString(CryptoJS.enc.Utf8);
}

console.log(decryptByDES(data, key);

这段代码在 PHP 中的等价物是什么?

【问题讨论】:

标签: php encryption des


【解决方案1】:

要从 base64 解码和解码字符串,可以使用 base64_encode() :

<?php
$str = 'This is an encoded string';
echo base64_encode($str);
?>

现在开始解码:

<?php
$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
echo base64_decode($str);
?>

现在可以将其应用于任何功能。

现在这个函数可以用 php 7.1 做同样的事情:

<?php
$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
$key = '12345678';


function decryptByDES($str, $key) {
    $str = base64_decode($str);
    $key = base64_decode($key);
    $str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
    $str = str_replace("\x0", '', $str);
    return $str;
}

?>

【讨论】:

    【解决方案2】:

    感谢您的回复。

    我的问题的解决方案是下面的代码

    openssl_decrypt(base64_decode("encrypted_url"), 'DES-ECB', utf8_decode("my_token"), OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING , '');
    

    【讨论】:

      猜你喜欢
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      相关资源
      最近更新 更多