如何使用 php 解码 base64 中的字符串
How to decode a string in base64 with php
你好,我正在尝试用 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 中的等价物是什么?
要从 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;
}
?>
感谢您的回复。
我的问题的解决方案是下面的代码
openssl_decrypt(base64_decode("encrypted_url"), 'DES-ECB', utf8_decode("my_token"), OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING , '');
你好,我正在尝试用 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 中的等价物是什么?
要从 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;
}
?>
感谢您的回复。
我的问题的解决方案是下面的代码
openssl_decrypt(base64_decode("encrypted_url"), 'DES-ECB', utf8_decode("my_token"), OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING , '');