【问题标题】:Javascript / PHP string encode / decode with keyJavascript / PHP字符串编码/使用密钥解码
【发布时间】:2012-05-27 06:15:14
【问题描述】:

我正在使用 jQuery / CodeIgniter 处理登录表单,想知道是否可以这样做:

  1. 当用户单击Sign In 时,它通过 AJAX 发送请求以获取 值键(使用 CodeIgniter flashdata 设置)。
  2. 一旦获得密钥,它会使用 SHA256 对密码进行哈希处理,然后使用来自 AJAX 请求的密钥对哈希密码进行编码。
  3. 之后,它将用户名/编码和哈希密码发送到服务器,然后在服务器上对其进行解码、加盐、重新哈希并与数据库中存储的密码进行核对。

显然,由于 AJAX 请求将与登录请求几乎同时发送,因此在尝试登录用户之前也会对此进行检查。

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

【问题讨论】:

  • 我曾想过,但我会遇到不知道检查数据库中的值所需的未编码字符串的问题
  • 如果您这样做是为了防止有人窃听连接并获取密码,它将无法正常工作。如果他们得到了浏览器的密钥,他们可以使用您自己的 javascript 来查看您的编码方式,然后模仿您所做的任何事情。
  • 老实说,它更像是“让它变得更难一点”,这是没有 SSL 时你真正能做的一切。我正在演示不同的方法、优势和劣势,如果我只是说“SSL 是唯一可行的方法”,那就不算什么了!

标签: php javascript jquery codeigniter encoding


【解决方案1】:

CodeIgniter 有一个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);

【讨论】:

  • 我知道会出现这种情况,现在如何在 JavaScript 中对字符串进行编码?我需要从 PHP 中获取密钥,然后在 JavaScript 中对其进行编码并在 PHP 中对其进行解码
  • 很遗憾javascript没有内置加解密功能,因为在客户端加密数据存在安全隐患,您应该使用自定义函数来加密和解密数据:@ 987654322@
  • 哦,真不幸!我将不得不为 JavaScript 和 PHP 编写一个插件来做到这一点!获得 SSL 证书可能会减轻压力!
  • @AndrewWillis 你真的不能以这种方式取代 SSL 的安全性,所以如果你需要加密,那就是这样。
  • 是的,这基本上只是一个测试,看看它是否有效和可能,而不是对数据包嗅探器问题的超安全、通用答案!
猜你喜欢
  • 1970-01-01
  • 2015-07-31
  • 2019-12-15
  • 2013-05-09
  • 1970-01-01
  • 2013-04-01
  • 2014-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多