基于DES算法加密的防撞库密码系统项目总结
项目内容:基于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分
基于DES算法加密的防撞库密码系统项目总结的更多相关文章
- 使用DES算法实现加密解密
使用DES算法实现加密解密 我们常见的加密算法有DES.MD5.IDEA.AES等等,这篇随笔介绍使用DES算法实现加密解密 首先介绍一下DES算法: DES算法为密码体制中的对称密码体制,又被称为美 ...
- 对称加密算法之DES算法
数据加密标准(data encryption standard): DES是一种分组加密算法,输入的明文为64位,密钥为56位,生成的密文为64位. DES对64位的明文分组进行操作.通过一个初始置换 ...
- 使用openssl库实现des,3des加密
原文地址: 使用openssl库实现des,3des加密 主要是调整了一下格式,以及一些变量的类型,以解决在VC2008下无法编译通过的问题. #include <stdio.h> #in ...
- 【Android工具】DES终结者加密时报——AES加密演算法
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 在前面的两篇文章中.我们介绍了DES算法,3DES算法以及他们的Android程序实现,并研究了怎样才干实现 ...
- 在IOS中使用DES算法对Sqlite数据库进行内容加密存储并读取解密
在IOS中使用DES算法对Sqlite 数据库进行内容加密存储并读取解密 涉及知识点: 1.DES加密算法: 2.OC对Sqlite数据库的读写: 3.IOS APP文件存储的两种方式及读取方式. 以 ...
- Asp.Net 常用工具类之加密——对称加密DES算法(2)
又到周末,下午博客园看了两篇文章,关于老跳和老赵的程序员生涯,不禁感叹漫漫程序路,何去何从兮! 转眼毕业的第三个年头,去过苏州,跑过上海,从一开始的凌云壮志,去年背起行囊默默回到了长沙准备买房,也想有 ...
- Python实现基于DES加密源码的文本加密器
这是自行制作的一个DES文本加密工具 最终效果图: 本加密器支持UTF-8字符的加解密(包含中文),由于其中的编码方式与常用编码方式不同,加密结果与网上工具不同,但是能实现正常加解密. 最终目标: 目 ...
- DES的加密与解密算法(Python实现)
DES的加密与解密算法(Python实现) 密码学实验:实现了DES的简单的加密和解密算法,DES算法的相关资料网上很多,这里不再赘述,仅仅贴出源代码给大家分享,源码中包含很多汉字注释,相信大家都是可 ...
- C#与Java同步加密解密DES算法
在实际项目中,往往前端和后端使用不同的语言.比如使用C#开发客户端,使用Java开发服务器端.有时出于安全性考虑需要将字符加密传输后,由服务器解密获取.本文介绍一种采用DES算法的C#与Java同步加 ...
随机推荐
- 语艺杂谈1 – MAP赋值与插入
MAP赋值和插入,对于相同ID的处理方式不同,前者为替换 后者为插入失败 #include <map> #include <string> #include <iostr ...
- LR中HTTP协议录制模式选择
在LR中使用HTML/HTTP协议进行脚本录制时面临正确选择HTTP-based script / URL-base script 录制模式的问题,以下是比较官方的建议:1)基于浏览器的应用程序推荐使 ...
- Redis安装及初步使用
一.Centos下安装Redis1.wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm2.rp ...
- 学习VS生活
很多时候,失败的原因归结为一点:我没有时间...代码敲不完,我真的是没有时间么?很多时候是没意识的浪费时间 我每次进教室,总能看到吴刚和赵东亮在敲代码,为啥他们有时间呢?很多时候,时间就像那啥,挤一挤 ...
- JS中基本window对象操作
---恢复内容开始--- 一.使用window中的属性时 window.属性,直接跟属性名.而调用window的函数时 window.hanshu(): 要在其函数名后面加括号. 二.windo ...
- Python - 求斐波那契数列前N项之和
n = int(input("Input N: ")) a = 0 b = 1 sum = 0 for i in range(n): sum += a a, b = b, a + ...
- Freemarker的第二次使用~list的元素是数组
在上次初次使用Freemarker作为模版后,我再次使用它.这次的需求是: xml文档的某个节点的属性A和其一个子节点的某个属性B有关联,属性B的值需要随着属性A的值变化.而属性A的值有4个值,现在需 ...
- php YAF
Yaf 的特点: 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存. 更短的内存周转周期, 提高内存利用 ...
- 树莓派如何便捷的使用pi4j
问题的由来 pi4j用起来很方便,但是感觉pi4j库的命名太杂乱,啰嗦了,很容易弄混,而且好像没听说官方有自己的编译器.如果没有智能点的编辑器的话,写起来真要命,但是树莓派运行Eclipse不太现实, ...
- Linux最常用命令及快捷键整理
最近在学Linux系统命令,在阿里云买了一台linux服务器.为方便自己也方便他人,整理了Linux常用命令及快捷键. 用命令: 文件和目录: # cd /home ...