项目内容:基于DES算法加密的防撞库密码系统
- 小组名:zqhzkzkj
- 目标:1.对用户输入的8位字符进行DES加密,要求用户输入8位密钥
2.对于不同的网站,不同的用户名生成不同的密码 - 小组成员:周岐浩、钟轲、郑凯杰
实验内容:
为了防止一个用户在不同的网站使用同一个密码,而导致一个网站被破译所有网站都被破译,于是我们修改了我们的项目。
分为四大步:
- 一、给定64bit的明文M,通过一个固定初始置换IP得到M0
- 二、进行16轮相同迭代运算,这些运算被称为轮函数f
- 三、对比特串R16L16使用逆置换IP-1,得到M1
- 四、把网址作为加密的明文,用户名作为加密的密钥,加密后的密文作为密码
根据这四大步我们把我们要完成的工作细化为:
- 1.界面
- 2.把用户输入的8位字符变为64bit的2进制数
- 3.对64bit进行IP置换得到M0
- 4.IP-1的逆置换
- 5.把64bit分为各32bit的L0与R0
- 6.任意长度的按位异或
下面是轮函数内容
- 7.对32bit进行重排变为48bit
- 8.与48bit的密钥进行异或
- 9.s-盒置换
- 10.p置换
下面是生成密钥的内容
- 11.64bit密钥进行PC-1置换
- 12.分为左右各28bit的c0与d0
- 13.循环左移得到c1与的d1
- 14.PC-2置换
防撞库设计:
- 1.注册/登录界面:用户输入账号及密码
- 2.设置界面:用户输入网址和用户名,把网址转换为明文,用户名转换为密钥。通过我们设置的DES算法加密出密文,并记录每个网址和用户名所生成的密文。
- 3.下次再登录该网址可以验证是否正确
完成情况:
-
可喜可贺的是我们完成了所有的任务
-
下面介绍一下我们项目流程
-
第一步 弹出窗口
-
由于我们是第一次使用,所以我们点击注册按钮 -
第二步 注册
这里我们针对不同的用户的和不同的网址来生成不同的密码(实质是使用用户名当做明文,网址当做密钥)
当然这里是把密码以txt的形式记录下来
- 第三步 登录
回到登录界面输入刚刚注册得到的密码
当然假如输入错误
每个人完成的方面
-
钟轲:完成了轮函数内容(7-10步)与界面(防撞库的三步)的内容
-
郑凯杰:完成了第3-6步,与周岐浩一起完成了第二步
-
周岐浩:完成了密钥轮换的内容(11-14)
-
三人一起完成了主函数的编写
-
三人得的分数分配:钟轲30分,周岐浩25分,郑凯杰20分