2012-05-20 46 views
0

我正在使用jQuery /笨形式的标志,想知道是否有可能做一些像这样:使用Javascript/PHP字符串编码/解码与关键

  1. 当用户点击Sign In它通过AJAX发送一个请求以获得一个 值键(使用CodeIgniter flashdata设置)。
  2. 一旦它有密钥,它就用SHA256散列密码,然后用来自AJAX请求的密钥编码散列密码。
  3. 之后,它将用户名/编码和散列密码发送到服务器,然后在该服务器中进行解码,腌制,重新哈希和检查数据库中存储的密码。

显然,由于AJAX请求将在同一时间登录请求被发送几乎,会有这样的检查也尝试登录用户之前。

基本上,我想知道在JavaScript和PHP中是否有一致的方式来进行基于密钥的编码/解码,如果是的话,怎么做。

+1

看到此http://stackoverflow.com/questions/7909288/php-javascript-jquery-base64-sha256-encoding – JackTurky

+0

我曾考虑过这个问题,但后来我会遇到不知道未编码的字符串的问题,我需要检查数据库中的值 –

+0

如果您要这样做以防止某人窃听连接并获取密码将无法工作。如果他们得到钥匙到浏览器,他们可以使用你自己的JavaScript来看看你的编码,然后模仿你做的任何事情。 – qw3n

回答

0

笨具有Encryption Class可用于编码和解码数据:

$msg = 'My secret message'; 
$key = 'super-secret-key'; 
$encrypted_string = $this->encrypt->encode($msg, $key); 

$encrypted_string = 'APANtByIGI1BpVXZTJgcsAG8GZl8pdwwa84'; 
$plaintext_string = $this->encrypt->decode($encrypted_string); 
+0

我知道这会出现,现在如何在JavaScript中对字符串进行编码?我需要从PHP获取密钥,然后使用JavaScript对其进行编码并使用PHP –

+0

进行解码,但不幸的是,JavaScript中没有内置的加密或解密函数,因为在客户端加密数据存在安全风险,您应该使用定制的功能,以加密和解密数据:http://www.webmasters.am/blog/string-encryption-decryption/javascript/2010/03/ – undefined

+0

哦,这是不幸的!我将不得不为JavaScript和PHP编写一个插件来执行此操作!获得SSL证书可能压力较小! –