能力值:
( LV2,RANK:10 )
|
-
-
2 楼
我的做法是用md5保存aes的密钥。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
MD5保存有区别吗,如果密钥被人拿到了还不是一样
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
当然不一样,他不可能那我的md5码去解密aes吧?除非他能用md5倒推出密码明文。但是,依据目前的解密技术来看,除了字典与穷举外基本上不可能倒推出md5的明文
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我问你
明文:我是明文
密文:我是密文
密钥:我是密钥
MD5:我是密钥的MD5
密文->密钥->明文->密钥->密文
密文->密钥的MD5->明文->密钥的MD5->密文
我请问你 MD5有什么用
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
哦,可能是我们的程序设计流程不一样,在我的程序里的流程是这样的:
1、用户选择一个待加密的字符串,然后输入密码,我将这个密码保存成md5,然后马上用这个密码的明文去调用aes为那个用户想要加密的字符串加密。
2、如果用户需要解密这个字符串,这需要输入密码,这时候我会根据当前的密码明文生成md5, 并与第一步保存的md5进行比较,如果一致的话,才允许用这个密码明文去调用aes解密那个第一步加密过的字符串。
(请注意:这中间用于aes加密的密码明文,没有保存到程序的任何地方,全靠用户当场输入)
我估计你的程序流程不是这样的。说说你的流程吧?
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
我们主要想实现注册功能
密文(网卡号)->密钥->明文(网卡号)->密钥->密文(网卡号)
这个密钥是保存在程序exe里面的
所有密钥的安全性至关重要
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
用网卡号当注册信息,为什么需要加密?
很少在同一台机器同一个程序单方面在程序里自动加密又当方面自动解密的情况!,如果是同一个系统也至少是在网络的一端加密,在网络的另外一端解密才有意义,像这种情况可以用非对称加密,生成公钥与私钥。
像你这种情况很奇怪,有加密的必要吗?
加密的意义在于,防止非法用户存取数据。像你这种情况我怎么感觉完全是在你自己的程序里加密解密着玩,又当运动员,又当裁判。这样的话,不但意义不大,而且完全是给自己制造麻烦?
|
能力值:
(RANK: )
|
-
-
9 楼
只要解密过程放到用户, 密钥就不可能保密, 这是对称算法的先天缺陷.
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
密匙保存在EXE文件里?
那密匙已经没必要加密了,加密EXE文件就行了,EXE文件泄露同样影响密匙的安全性
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
LZ的意思应该是只在用户密文里存放原始加密时候的密钥MD5,用户输入密钥后。
当对比用输入的密钥算出来的MD5和保存的MD5一致的时候,就用用户输入的那段密钥解密文件。
嗯,思路不错。
|
能力值:
( LV12,RANK:1000 )
|
-
-
13 楼
把 func(网卡地址)作为aes的密钥不知可行? func()函数可以是某个自定义函数或现成的hash函数,注册程序在每台电脑上执行时解密密钥就由网卡地址决定。再配合一下虚拟机保护防止爆破。
|
能力值:
( LV9,RANK:140 )
|
-
-
14 楼
强势围观!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
有什么意义啊...还不错.
如果攻击 "对比用输入的密钥算出来的MD5和保存的MD5一致的时候" 这个步骤.所谓的MD5,所谓的密钥有什么存在的意义,用不用MD5都一样呀. 既然用户输入的密钥的MD5已经和保存的MD5已经一致了,攻击者为什么不直接取出保存的MD5去解密?
楼上已经有位说到了,这样的对称加密解密没意义.
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
楼上
不是用MD5(密码)加密的.
流程是这样的
加密
用户输入 密码
MD5(密码)->MD5Key
AES(密码,明文)->密文
解密
用户输入 密码
if(MD5(密码)==MD5Key)
{
DAES(密码,密文)->明文
}
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
额,前面想的太简单了
|
|
|