10
回答
请问下,在传输密码的时候大家都是用什么方法来隐藏或加密密码和用户名信息??
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

项目中有个需求:验证用户的用户名和密码。在浏览器端输入用户各和密码,然后传送到服务器端进行验证,问题来了,在传送的过程中用户的账号和密码有可能被截获,因此必须要加密,有人建议采用sessionid 为密匙,用MD5算法来加密数据,然后在服务器端同样用sessionid来解密。但我觉得这也有很严重的问题,因为sessionid也很容易截获,所以加密数据可以很容易被硬解。

本人想用RSA算法来做加密,但没得得到认可。

不晓得大家是怎么做的。

<无标签>
举报
loveczp
发帖于6年前 10回/3K+阅
共有10个答案 最后回答: 6年前

其实本人做了一基于RSA算法的demo出来了。在服务器生公匙,每次客户端要传送数据的时候都在服务器端请求一个公匙,然后javascript就用公匙对数据加密并传送到服务器端,服务器端然后用私匙来解密。

但网上貌似没什么人用这个方案啊

为毛啊??

1.  HTTPS.
2.  拜托, md5 能用来加密解密吗?  实在不懂, 好歹你也Google一下嘛.
--- 共有 4 条评论 ---
loveczp回复 @中山野鬼 : 本人也觉得非常有问题。 6年前 回复
中山野鬼回复 @ZhiWei : 不是狗屁不通,压根就不是加密。哈。只是把密码换了个形式表达而已。呵呵。 6年前 回复
雷志伟回复 @loveczp : 说句不好听的, 那帖子狗屁不通. 6年前 回复
loveczphttp://topic.csdn.net/u/20090323/10/fcd96137-6ea9-4d82-8018-f45f2781dabb.html 这就是本搜索出来的结果。但本人觉得貌似有问题。 https需要对服务器进行设置,这个改动成本太大。 6年前 回复

引用来自“loveczp”的答案

其实本人做了一基于RSA算法的demo出来了。在服务器生公匙,每次客户端要传送数据的时候都在服务器端请求一个公匙,然后javascript就用公匙对数据加密并传送到服务器端,服务器端然后用私匙来解密。

但网上貌似没什么人用这个方案啊

为毛啊??

因为 Javascript 取的公钥非常有可能是伪造的. 那么, 一切努力全部白费了.

如何解决这个问题呢?
笼统的说, 由浏览器内置公钥, 或者由用户能过可靠的渠道给浏览器安装这个公钥.

目前主流浏览器已经内置了几家比较可信的第三方公钥, 具体自己Google吧.
--- 共有 4 条评论 ---
雷志伟回复 @loveczp : http://www.oschina.net/news/26228 6年前 回复
loveczp回复 @ZhiWei : 有木有链接,给个链接,达人!! 6年前 回复
雷志伟回复 @loveczp : 这个方案已经很成熟, 主流webserver都有支持. 第三方服务, 有收费的, 也有免费的, 如果你想少折腾的话, 就是用收费的吧. 6年前 回复
loveczp如果私匙存在了第三方,那服务器端怎么找到对应的私匙来解码加密数据呢,而且从第三方获取私匙还有效率和稳定性方面的隐患啊。 6年前 回复

目前普遍用的是 密码本。
就是首先用户去申请,获取一张图片。图片是一个对应的编码。
以后需要验证的时候。 系统会对你的密码本进行提问,按照对应的编码回答之后才能通过。
对于传输曾以及 第三人方式攻击,一点保护性措施都没有。 只是在身份伪造的时候有点作用。

--- 共有 1 条评论 ---
loveczp这方案貌似是用来防止账号盗用,我的需求是要传输过程中数据不被窃听截获破解,貌似离需求还是有点偏差。 6年前 回复

不被窃听是不可能的, 只是被窃听的内容无意义。 

https 协议可以保证传输安全,可是证书 只能去其他地方认证。 自己认证的 浏览器又不信任。

密码本验证原理大概是这样的。 如果你获取一个密码本,对应编码是 a->A,b->B,c->C等等。

系统在需要安全的时候。用明文传递数据给客户端,并且有部分加密数据, 系统提示客户对应编码是 a, 客户通过密码本得知,解码需要 A,然后客户端程序用 A 作为钥匙解码密文。

密文解开后是一个独特的加密算法,如果没有钥匙A是没办法解密这个算法的。
客户通过解密后的算法对上传的信息加密, 用 A 作为加密钥匙,并附带要传输的数据。
如果信息被截获。由于不知道 a 对应的钥匙,所以无法对加密算法解密,进而无法获取上传的信息加密方式,所以上传信息不可知。可服务器端知道请求配对是a, 通过a可查到解密钥匙,所以可对上传信息解密。 这些只是原理,实际上比这复杂一点。

--- 共有 4 条评论 ---
泡不烂的凉粉回复 @loveczp : 我的思路仅供参考。 6年前 回复
loveczp回复 @木人mr : 我的思路就是用非对称加密呀!让客户端用公匙加密,而在服务器端用私匙解密。 6年前 回复
泡不烂的凉粉回复 @loveczp : 密码本泄漏还有什么加密可言。所有传输都是在钥匙别人不知道的情况下, 别人拿着你的钥匙进你家, 那锁的作用一点都没有。 6年前 回复
loveczp如果密码本在传输的过程中能够保证不被截获吗??? 如果密码本被截获了,那不也一样会被破解吗?? 6年前 回复

建议楼主对网络的层级有基本概念,然后考虑,你究竟想在哪层加密。你给@ZhiWei 看的,那不是加密。只能说是个用户名,密码,不明文保存而已。只有在别人攻击服务器时,不能直接提取明文数据而已。而服务器段的空间域到空间域的映射函数是固定的。就是MD5,而参数又是明文,就是存在session里面的。只不过让攻击者多做一步事情而已。这和你用RAR加密压缩个文件,然后在文件中明文给出密钥的所有信息有什么区别?别人解惑你的这个RAR文件的全部,自然也可以完成对等工作。

MD5以前作为加密,也是处于对信息的完整性判断的角度来实现的。现在仍然广泛用于文件一致性检测的用途。因为如果两个MD5值完全相同,他们原始的文件会差别很大。

你的问题貌似是如何防止传输过程中的监听行为。只有两个办法可以有效实现。一个是网络隔离,在网络层和以下层做加密。别人无法获取你的传输中有效信息。一个是加密信息通过两种途径传输。监听者,始终只能获取其中一个传输通道的信息,由此无法伪造或破解。

--- 共有 8 条评论 ---
loveczp回复 @ZhiWei : 需求就是避免sniffer之类的网络嗅探软件探测到用户名和密码。你说的对的,只是想得太多了。 6年前 回复
中山野鬼回复 @loveczp : 你有点脱离方向了。别人想知道你的密码的最终目的是什么呢?你想想?你加密的内容难道是仓老师的照片? 6年前 回复
雷志伟@loveczp 我彻底崩溃了... 6年前 回复
loveczp回复 @ZhiWei : 中间人是什么?????? 6年前 回复
雷志伟回复 @loveczp : 拜托, 先去了解一下 "中间人" 行不行? 真的没办法跟你沟通了... 6年前 回复

引用来自“中山野鬼”的答案

建议楼主对网络的层级有基本概念,然后考虑,你究竟想在哪层加密。你给@ZhiWei 看的,那不是加密。只能说是个用户名,密码,不明文保存而已。只有在别人攻击服务器时,不能直接提取明文数据而已。而服务器段的空间域到空间域的映射函数是固定的。就是MD5,而参数又是明文,就是存在session里面的。只不过让攻击者多做一步事情而已。这和你用RAR加密压缩个文件,然后在文件中明文给出密钥的所有信息有什么区别?别人解惑你的这个RAR文件的全部,自然也可以完成对等工作。

MD5以前作为加密,也是处于对信息的完整性判断的角度来实现的。现在仍然广泛用于文件一致性检测的用途。因为如果两个MD5值完全相同,他们原始的文件会差别很大。

你的问题貌似是如何防止传输过程中的监听行为。只有两个办法可以有效实现。一个是网络隔离,在网络层和以下层做加密。别人无法获取你的传输中有效信息。一个是加密信息通过两种途径传输。监听者,始终只能获取其中一个传输通道的信息,由此无法伪造或破解。

...一个是加密信息通过两种途径传输。监听者,始终只能获取其中一个传输通道的信息,由此无法伪造或破解。

这个有些牵强了吧. 普通应用很难做得到这样子.
1, 不通用.
2, 成本过高.  比网银的U盾成本还要高, 几乎无实际应用价值.

难不成, 你还想搞得跟军用对讲机一样, 1分钟变频180+次, 且变频是预先约定,无规律.
--- 共有 11 条评论 ---
中山野鬼回复 @ZhiWei : 不赚钱只是爱好。哈。 6年前 回复
中山野鬼回复 @ZhiWei : 非也,能赚钱才是王道。 6年前 回复
雷志伟回复 @中山野鬼 : 看来, 我是连当弱智的资格都没有了... 6年前 回复
中山野鬼回复 @ZhiWei : 数学真是个好东西,经常让我发现我自己的方案有多弱智。 6年前 回复
雷志伟回复 @中山野鬼 : 太底层, 太数学, 玩不来... 6年前 回复
网络不被监听是不可能的, 唯一能做的就是对传输加密, 让监听者不知道传输内容。
--- 共有 1 条评论 ---
loveczp本人也是这个思路啊。 6年前 回复
顶部