»
游客:
注册
|
登录
|
搜索
|
统计
|
喜悦证交所
|
帮助
喜悦国际村
»
喜悦原创
» [原创]PHP & Javascript 之 在普通HTTP上安全地传输密码
上一主题
下一主题
21
1/3
1
2
3
>
标题: [原创]PHP & Javascript 之 在普通HTTP上安全地传输密码
longbill
注册会员
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
coolhpy
注册会员
UID 70642
精华 0
积分 157
帖子 140
金钱 157 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-3-29
来自 浙江
状态 离线
[广告]:
Enom域名自助付费 自助注册 自助PUSH 主流域名COM等一律57.99元年
不错,有点意思
2006-8-14 02:44 PM
#2
fcicq
新手上路
初级会员
UID 24467
精华 0
积分 21
帖子 587
金钱 20 喜悦币
威望 0
人脉 1
阅读权限 10
注册 2003-11-8
来自 fcicq.net
状态 离线
[推荐阅读]
学习小偷程序首选例子,BT小偷和电影小偷,有演示
但是通过上面的方法加密后的MD5摘要却完全不同。这样就算坏人得到了这些MD5摘要,他们也不可能分析出你的密码!
呵呵,如果密码简单的话....
实际上破解密码的复杂度没有任何变化.
学
科
2006-8-14 02:50 PM
#3
凡争
(凡争)
新手上路
初级会员
UID 65264
精华 0
积分 4
帖子 7
金钱 4 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2005-7-23
状态 离线
[推荐阅读]
询问一个PDO分页查询的问题
楼上的就不对了...密码简单这个问题是解决不了的...
2006-8-15 10:04 AM
#4
longbill
注册会员
UID 69845
精华 0
积分 116
帖子 82
金钱 116 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-3-18
状态 离线
[推荐阅读]
用JS裁切图片后保存问题
就算密码再简单,只要和一个随机字符串加起来,就不简单了。
所以用暴力破解是基本上是没有结果的(前提是随机字符串要够复杂)
PHPCMS文件管理器
2006-8-15 10:46 AM
#5
fcicq
新手上路
初级会员
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
longbill
注册会员
UID 69845
精华 0
积分 116
帖子 82
金钱 116 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-3-18
状态 离线
[推荐阅读]
首界PHP西湖论剑,诚邀各路豪杰
这个东东就是专门应对密码传输过程有人监听的~
通过客户端md5后,随便别人怎么监听都可以~~~~
PHPCMS文件管理器
2006-8-15 12:13 PM
#7
fcicq
新手上路
初级会员
UID 24467
精华 0
积分 21
帖子 587
金钱 20 喜悦币
威望 0
人脉 1
阅读权限 10
注册 2003-11-8
来自 fcicq.net
状态 离线
[推荐阅读]
留言板中,如何让他写入的html代码不执行,但可以显示
随机字符串和密码相加后再加密
主要是这个问题,随机字符串他也是***能听到***的.破解难度和原来的md5是一样的.
学
科
2006-8-15 01:52 PM
#8
abcd
(天地)
高级会员
资深会员
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
注册会员
UID 69845
精华 0
积分 116
帖子 82
金钱 116 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-3-18
状态 离线
[推荐阅读]
sprintf格式化问题!!
例子:
CODE:
[Copy to clipboard]
<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
21
1/3
1
2
3
>
可打印版本
|
推荐给朋友
|
订阅主题
|
收藏主题
|
开通个人空间
论坛跳转 ...
技术论坛
> php基础编程
> PHP高级编程
> XML/HTML/CSS/Js
> 代码共享
> 建站讨论
> 喜悦原创
> 开源程序论坛
> ECShop官方技术论坛
> LAMP进阶文章
> JAVA/C/C++
> Windows/软硬件
> linux技术
> 数据库技术
非技术论坛
> 娱乐乐园
> 招聘&求职
> 跳蚤市场
> 广告时间
> 联盟项目组
> 站务问题
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