- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想知道是否有一个 javascript 库可以为 php 中的 mcrypt_encrypt 提供功能。
我正在编写一个函数来使用 javascript 访问我的 api。我总是对我的参数进行加密和编码。这是我想要的 js 版本的方法。
public function sendRequest($request_params)
{
//encrypt the request parameters
$enc_request = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->_app_key, json_encode($request_params), MCRYPT_MODE_ECB));
//create the params array, which will
//be the POST parameters
$params = array();
$params['enc_request'] = $enc_request;
$params['app_id'] = $this->_app_id;
//initialize and setup the curl handler
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->_api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//execute the request
$result = curl_exec($ch);
//json_decode the result
$result = @json_decode($result);
//if everything went great, return the data
return $result;
}
这是我提出的上述请求的 jquery 版本,但它总是返回无效请求。表示 API 无法解密请求
var queryAPI = function (request_object,callback)
{
var app_key = 'sdffkjhdsjfhsdjkfhsdkj';
var app_secret = 'hfszdhfkjzxjkcxzkjb';
var app_url = 'http://www.veepiz.com/api/jsonp.php';
var enc_request = $.toJSON(request_object);
var ciphertext =encode64(Crypto.AES.encrypt(enc_request, app_secret, { mode: new Crypto.mode.ECB }));
$.post(app_url,{'app_id':app_key,'enc_request':ciphertext},
function (data)
{
console.log(data);
},'jsonp');
}
下面是我如何运行上面的函数
var request={'controller':'user','action':'login','emailaddress':email,'password':pass};
queryAPI(request,function (d){console.log(d);});
在服务器端的api上,这里是php解密请求的方式
$params = json_decode(trim(mcrypt_decrypt( MCRYPT_RIJNDAEL_256, $app_secret, base64_decode( urldecode( $enc_request )), MCRYPT_MODE_ECB )));
//check if the request is valid by checking if it's an array and looking for the controller and action
if( $params == false || isset($params->controller) == false || isset($params->action) == false ) {
$result['success'] = 0;
$result['errormsg'] = "Request is not valid! ";
//echo the result of the API call
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/javascript');
$result=json_encode($result);
# JSON if no callback
if( ! isset($_GET['callback']))
exit( $result );
# JSONP if valid callback
if(is_valid_callback($_GET['callback']))
exit( "{$_GET['callback']}($result)" );
# Otherwise, bad request
header('Status: 400 Bad Request', true, 400);
}
最佳答案
关于php - mcrypt_encrypt 的 javascript 替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9532505/
根据 php 7.0 mcrypt_decrypt 已弃用。 我有以下代码。 $intSize= mcrypt_get_iv_size( MCRYPT_RIJNDAEL_256, MCRYPT_MOD
我正尝试在 CBC 模式下使用 256 位 key 使用 Rijndael 密码对 PHP 中的某些数据进行加密,但由于某种原因,我收到以下错误消息: mcrypt_encrypt() 模块初始化失败
我使用了 MCRYPT_ENCRYPT 和这个方法: class Encrypter { private static $Key = "dublin"; public static f
这是一个加密和解密数据的PHP演示脚本: \n"; $card_nbr_encrypted=encrypt_data($card_nbr); echo "card_nbr_encrypted: $ca
有人知道 mcrypt_generic 和 mcrypt_encrypt 在 PHP 加密方面的区别吗? 最佳答案 mcrypt_encrypt() 结合了几种方法的功能,而 mcrypt_gener
首先,Coldfusion Encrypt: #ciphertext# 然后,PHP mcrypt: $message = "1447841550"; $key = 'Mk9m98IfEblmP
这是一个加密和解密数据的PHP演示脚本: \n"; $card_nbr_encrypted=encrypt_data($card_nbr); echo "card_nbr_encrypted: $ca
我被迫从 PHP 5.6 迁移到 7.0+,除了 mcrypt_encrypt() 之外一切都很好,它已经被弃用,如 php.net 中所述。 这是我的代码 $json = array( 'A
我正在使用以下函数来加密字符串 ($str),并使用 key ($key) 来创建唯一 key 。 示例代码: 该函数返回由特殊字符(包括 '+' )组成的值。我将此值作为唯一 ID 存储在数据库中
我的 Web 应用程序从客户端获取 URL 对象,使用 mcrypt_encrypt 对其进行加密,并将结果作为 LONGTEXT 类型存储在 MySQL 数据库中。整个过程如下所示: /*
我一直在寻找答案,但在这里找不到。如果已经有人问过这个问题,请原谅。 我有一个加密和解密字符串的简单代码,字符串看起来一样,但是当使用 == 比较它们时,它们看起来并不相同,所以哈希值也不同.. 这是
我有一个旧算法来编码我想与 PHP 7 一起使用的密码 public function encriptarPass($cadena) { $extra = (strlen($cadena)%
我几乎失去了头发、思想和其他一切!我一直在尝试将此 PHP 函数转换为 C#: function encrypt_decrypt($action, $string) { $output = fa
我想知道是否有一个 javascript 库可以为 php 中的 mcrypt_encrypt 提供功能。 我正在编写一个函数来使用 javascript 访问我的 api。我总是对我的参数进行加密和
PHP 版本: mcrypt_encrypt(MCRYPT_RIJNDAEL_256, "11111111111111111111111111111111", "1111111111111111111
我需要在 android 中使用 key 对特定文本进行加密。在 PHP 中,加密代码如下所示 $this->securekey = hash('sha256',$textkey,TRUE); $th
function fnEncrypt($key,$string){ return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key
我需要加密一些 SOAP header 字段,目前我在 PHP 5.6 版本的项目中使用以下代码。 function getBaseEncoded($data, $key) { $size
我正在将项目中加密数据和使用 mcrypt 的所有功能迁移到 openssl。 进行测试时我发现,使用相同的 key 加密相同的数据会得到不同的结果。 解密时,我使用这两个函数都得到了正确的结果;问题
我正在将项目中加密数据和使用 mcrypt 的所有功能迁移到 openssl。 进行测试时我发现,使用相同的 key 加密相同的数据会得到不同的结果。 解密时,我使用这两个函数都得到了正确的结果;问题
我是一名优秀的程序员,十分优秀!