喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

$5.95 Web Hosting     

上一主题 下一主题
 21  1/3  1  2  3  > 
     
标题: [原创]PHP & Javascript 之 在普通HTTP上安全地传输密码  
 
longbill
注册会员
Rank: 2



UID 69845
精华 0
积分 116
帖子 82
金钱 116 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-3-18
状态 离线
[广告]: 代充Paypal帐号美元
[原创]PHP & Javascript 之 在普通HTTP上安全地传输密码

相关帖:
PHP & Javascript 之 XML的代替者JSON

    1。理论
    在普通HTTP上,一般表单中的密码都是以明文方式传到服务器进行处理的。这无疑给了坏人以可乘之机!这里我们就说说怎么传输密码才是安全的!
    与其传输密码本身,到不如传输其加密后的形式。MD5是个不错的选择。第一,不同的资源几乎不可能生成相同的MD5摘要,第二,MD5的编码方式是不可逆推的。有了这些特性,我们就可以让MD5摘要公开的在Internet上传输,而不必担心密码被坏人知道。然后在服务端也将密码通过同样的方式加密,最后比较这两个字符串。
    然而,我们不能为了登陆而将密码md5后直接通过Internet传输,因为坏人虽然不会知道我们的密码,但肯定会知道这个特殊的字符串可以授权他们访问我们的网站!
    这就是公匙和私匙要解决的问题,首先由服务器提供一个随机字符串,然后客户端将这个随机字符串和密码相加后再加密!
    每次登陆时,服务器会产生不同的随机字符串,这样你的密码没有变,但是通过上面的方法加密后的MD5摘要却完全不同。这样就算坏人得到了这些MD5摘要,他们也不可能分析出你的密码!
    这种方法中,服务器提供的随机字符串叫做"公匙",寿命很短,并可以被任何人利用;你的密码叫做"私匙",寿命很长,而且永远也不会被人知道。

    2。实现
    客户端Javascript并没有提供现成的md5算法,但我们在 google 上用 "md5 javascript" 搜索,就可以得到很多md5在Javascript上实现的例子。
    在PHP中我就不用多说了,直接用md5()这个函数就可以搞定!随机字符串我们可以用session来存储(PHP就是强啊~~)

    3。注意
    在JS中,中文都是UTF-8格式的,所以如果你的密码是中文,而且存储在服务端的密码的编码方式是GB2312,那么两个密码加密后的字符串是完全不同的!

[ 本帖最后由 longbill 于 2006-8-14 12:17 PM 编辑 ]




PHPCMS文件管理器
2006-8-14 12:16 PM#1
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
coolhpy
注册会员
Rank: 2



UID 70642
精华 0
积分 157
帖子 140
金钱 157 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-3-29
来自 浙江
状态 离线
[广告]: Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
不错,有点意思
2006-8-14 02:44 PM#2
查看资料  访问主页  Blog  发短消息  顶部
 
fcicq
新手上路
Rank: 1
初级会员



UID 24467
精华 0
积分 21
帖子 587
金钱 20 喜悦币
威望 0
人脉 1
阅读权限 10
注册 2003-11-8
来自 fcicq.net
状态 离线
[推荐阅读] 学习小偷程序首选例子,BT小偷和电影小偷,有演示
但是通过上面的方法加密后的MD5摘要却完全不同。这样就算坏人得到了这些MD5摘要,他们也不可能分析出你的密码!

呵呵,如果密码简单的话....
实际上破解密码的复杂度没有任何变化.





2006-8-14 02:50 PM#3
查看资料  访问主页  Blog  发短消息  顶部
 
凡争 (凡争)
新手上路
Rank: 1
初级会员



UID 65264
精华 0
积分 4
帖子 7
金钱 4 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2005-7-23
状态 离线
[推荐阅读] 询问一个PDO分页查询的问题
楼上的就不对了...密码简单这个问题是解决不了的...
2006-8-15 10:04 AM#4
查看资料  发短消息  顶部
 
longbill
注册会员
Rank: 2



UID 69845
精华 0
积分 116
帖子 82
金钱 116 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-3-18
状态 离线
[推荐阅读] 用JS裁切图片后保存问题
就算密码再简单,只要和一个随机字符串加起来,就不简单了。
所以用暴力破解是基本上是没有结果的(前提是随机字符串要够复杂)




PHPCMS文件管理器
2006-8-15 10:46 AM#5
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
fcicq
新手上路
Rank: 1
初级会员



UID 24467
精华 0
积分 21
帖子 587
金钱 20 喜悦币
威望 0
人脉 1
阅读权限 10
注册 2003-11-8
来自 fcicq.net
状态 离线
[推荐阅读] 谁有php版的 html转ubb代码
呵呵,偶是想如果传输过程中有人监听....

ssl就没大问题了.





2006-8-15 11:30 AM#6
查看资料  访问主页  Blog  发短消息  顶部
 
longbill
注册会员
Rank: 2



UID 69845
精华 0
积分 116
帖子 82
金钱 116 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-3-18
状态 离线
[推荐阅读] 首界PHP西湖论剑,诚邀各路豪杰
这个东东就是专门应对密码传输过程有人监听的~
通过客户端md5后,随便别人怎么监听都可以~~~~




PHPCMS文件管理器
2006-8-15 12:13 PM#7
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
fcicq
新手上路
Rank: 1
初级会员



UID 24467
精华 0
积分 21
帖子 587
金钱 20 喜悦币
威望 0
人脉 1
阅读权限 10
注册 2003-11-8
来自 fcicq.net
状态 离线
[推荐阅读] 留言板中,如何让他写入的html代码不执行,但可以显示
随机字符串和密码相加后再加密

主要是这个问题,随机字符串他也是***能听到***的.破解难度和原来的md5是一样的.





2006-8-15 01:52 PM#8
查看资料  访问主页  Blog  发短消息  顶部
 
abcd (天地)
高级会员
Rank: 4
资深会员


UID 15273
精华 0
积分 793
帖子 811
金钱 793 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2002-7-16
状态 离线
[推荐阅读] 数据非 Discuz! 分卷备份格式用什么转换工具转换


QUOTE:
原帖由 longbill 于 2006-8-14 12:16 PM 发表
相关帖:
PHP & Javascript 之 XML的代替者JSON

    1。理论
  ...  
这就是公匙和私匙要解决的问题,首先由服务器提供一个随机字符串,然后客户端将这个随机字符串和密码相加后再加密!
...
很想知道你怎么把服务器端提供的的随机字符给客户端,客户端又怎样来调用加密?


另外说一点:你搞错了“公匙”和“私匙”的概念




PHP、 JSP程序下载,自主版权

http://www.tiandinet.com

成都PHP群:37336946
2006-8-15 02:40 PM#9
查看资料  访问主页  发短消息  顶部
 
longbill
注册会员
Rank: 2



UID 69845
精华 0
积分 116
帖子 82
金钱 116 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-3-18
状态 离线
[推荐阅读] sprintf格式化问题!!
例子:

<script src="http://longbill.cn/dev/js/md5.js"></script>

<form name=form1 action="处理页面地址" onsubmit="mysub();return false;">
<input type=hidden value="由服务器生成的随机字符串" name=rand />
pass:<input type=password name=password />
<input type=submit />
</form>

<script>
function mysub()
{
   var f=document.form1;
   if (f.password == "") return;
   f.password.value = MD5(f.password.value+f.rand.value);
   f.submit();
}
</script>




PHPCMS文件管理器
2006-8-15 03:56 PM#10
查看资料  访问主页  Blog  发短消息  QQ  顶部
 21  1/3  1  2  3  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.029040 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP