将 base64 传递给 PHP 中的 URL 以使用 OpenSSL 解码
Passing base64 to URL in PHP to decode with OpenSSL
我正在尝试通过 URL 传递参数。这个参数是base64.
https://site/file?base=+EOOJZIWLfQwoiVT6rfDbj3sr9vabuzX84bcT38u9hQSW3d/ErsE9E2OlXRvc88x
用 OpenSSL 在 PHP 文件中解密。当我发送它时,在 PHP 文件中它变成了
"EOOJZIWLfQwoiVT6rfDbj3sr9vabuzX84bcT38u9hQSW3d/ErsE9E2OlXRvc88x"
它在 base64 中转义了“+”。
所以 OpenSSL 无法解密它,因为它获取了错误的 base64。我试过 urlencode
,但它把“/”转义为“%2f”,这里也一样。
这是我的代码:
$user = urlencode($_GET['base64']); // user
$key = ('12345678901234567890123456789012');
$iv = ('1234567890123456');
$field_data = htmlspecialchars($user);
//$e = urldecode($field_data);
$output = openssl_decrypt($field_data, 'AES-256-CBC', $key, 0, $iv);
通过使用 base64 编码解决,使用 base64-url 编码并在 php 中解码,通过 base64 解码使其 return 成为正常的 base64 .. 然后通过它到 openssl
$user = $_GET['x']; // user
function base64url_encode($data) {
return rtrim(strtr($data, '+/', '-_'), '=');
}
function base64_url_decode($input) {
return strtr($input, '._-', '+/+');
}
$last = base64_url_decode ( $user);
$key = ('12345678901234567890123456789012');
$iv = ('1234567890123456');
$output = openssl_decrypt($last, 'AES-256-CBC', $key, 0, $iv);
其中 url 传递的是
https://site/file?base=-EOOJZIWLfQwoiVT6rfDbj3sr9vabuzX84bcT38u9hQSW3d_ErsE9E2OlXRvc88x
i used client side c++ for encrypt aes and base64 url
我正在尝试通过 URL 传递参数。这个参数是base64.
https://site/file?base=+EOOJZIWLfQwoiVT6rfDbj3sr9vabuzX84bcT38u9hQSW3d/ErsE9E2OlXRvc88x
用 OpenSSL 在 PHP 文件中解密。当我发送它时,在 PHP 文件中它变成了
"EOOJZIWLfQwoiVT6rfDbj3sr9vabuzX84bcT38u9hQSW3d/ErsE9E2OlXRvc88x"
它在 base64 中转义了“+”。
所以 OpenSSL 无法解密它,因为它获取了错误的 base64。我试过 urlencode
,但它把“/”转义为“%2f”,这里也一样。
这是我的代码:
$user = urlencode($_GET['base64']); // user
$key = ('12345678901234567890123456789012');
$iv = ('1234567890123456');
$field_data = htmlspecialchars($user);
//$e = urldecode($field_data);
$output = openssl_decrypt($field_data, 'AES-256-CBC', $key, 0, $iv);
通过使用 base64 编码解决,使用 base64-url 编码并在 php 中解码,通过 base64 解码使其 return 成为正常的 base64 .. 然后通过它到 openssl
$user = $_GET['x']; // user
function base64url_encode($data) {
return rtrim(strtr($data, '+/', '-_'), '=');
}
function base64_url_decode($input) {
return strtr($input, '._-', '+/+');
}
$last = base64_url_decode ( $user);
$key = ('12345678901234567890123456789012');
$iv = ('1234567890123456');
$output = openssl_decrypt($last, 'AES-256-CBC', $key, 0, $iv);
其中 url 传递的是
https://site/file?base=-EOOJZIWLfQwoiVT6rfDbj3sr9vabuzX84bcT38u9hQSW3d_ErsE9E2OlXRvc88x
i used client side c++ for encrypt aes and base64 url