PHP和JS实现普通HTTP上安全地传输密码
来源:百度文库 编辑:神马文学网 时间:2024/04/28 06:25:52
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,那么两个密码加密后的字符串是完全不同的!
Dnawo注:原文对"公钥"和"私钥"的理解有误,所以对部分内容做了适当的修改!
在普通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,那么两个密码加密后的字符串是完全不同的!
Dnawo注:原文对"公钥"和"私钥"的理解有误,所以对部分内容做了适当的修改!
PHP和JS实现普通HTTP上安全地传输密码
利用php和js来轻松实现页面数据的刷新
实现手机和电脑间图片传输的软件
HTTP超文本传输协议
HTTP超文本传输协议-HTTP/1.1中文版--
也用PHP来实现网页静态发布的两种方法 - 『PHP/Perl编程专区』 - 台州站长论坛 |台州论坛|站长论坛|TVB电视剧|PHP论坛|MYSQL论坛|Ajax论坛|DIV CSS论坛|JS论坛|
讲解用PHP实现Jmai组件及发送邮件三例 - 『PHP/Perl编程专区』 - 台州站长论坛 |台州论坛|站长论坛|TVB电视剧|PHP论坛|MYSQL论坛|Ajax论坛|DIV CSS论坛|JS论
JS实现图片幻灯片效果
PHP在XP下IIS和Apache2服务器上的安装,PHP 安装,编程开发,PHP 编程,...
用php实现gb2312和unicode间的编码转换 编码转换
用php实现gb2312和unicode(UTF-8)间的编码转换 - 无非 - PHPC...
prototype.js dojo 中 javascript继承实现
大型系统上PHP令人不爽的九大原因 软工吧论坛| 专注软件开发http://www.gcs8.cn
微波和卫星传输系统
http://www.developer.com/security/archives.php
一周学会PHP(视频)Http下载
邛窑和西坝---省油灯http://bbs.a9188.com/viewthread.php?tid=181071&highlight=
ATM传输和以太网传输两者有什么区别
sajax.php在php中实现ajax技术的类
sajax.php在php中实现ajax技术的
sajax.php在php中实现ajax技术的类
超文本传输协议及HTTP包 - Cocowool的专栏 - CSDNBlog
PHP和Socket
PHP和Socket简介