加密算法—MD5、RSA、DES
最近因为要做一个加密的功能,简单了解了一下加密算法,现在比较常用的有三个加密算法MD5加密算法、RSA加密算法、DES加密算法。
MD5加密算法
定义:MD5算法是将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,即使你看到源程序和算法描述,也无法将MD5的值变回原始的字符串。
应用:在有些操作系统中,用户的密码是以MD5的方式保存的,用户登录时,系统吧用户输入的密码计算成MD5中,然后和数据库中保存的MD5值进行比较,如果相同则登录成功,如果不同则登录失败,而系统并不知道用户的密码是什么。
RSA加密算法
定义:RSA既能用于数据加密,也能用于数字签名。
原理:1、找出三个数p、q、r p、q是相异的中质数, r 是与 (p-1)(q-1) 互质的数,p, q, r 这三个数便是 private key
2、找出 m, 使得 rm = 1 mod (p-1)(q-1)计算 n = pq m, n 这两个数便是 public key
3、a是要加密的资料, b = a^m mod n, (0 <= b < n),b是加密后的资料
4、 解密过程 a = b^r mod pq (0 <= c < pq)
局限性:由于进行的都是大数计算,速度一直是RSA的缺陷。一般来说只用于少量数据加密。
DES加密算法
有点:DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础(动态的生成key)
原理:DES算法有三个参数:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。 如Mode为加密,则用Key 去把数据Data进行加密, 生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位)作为DES的输出结果。
应用:我们最后使用的就是DES加密算法,但是由于用户对数据的保密性并没有高度的要求,所以我们没有使用动态的key,而是使用了静态的key.
加密程序
- Dim des As New System.Security.Cryptography.DESCryptoServiceProvider 'DES算法
- Dim inputByteArray As Byte()
- inputByteArray = System.Text.Encoding.Default.GetBytes(SourceStr)
- des.Key = System.Text.Encoding.UTF8.GetBytes(myKey) 'myKey DES用8个字符,TripleDES要24个字符
- des.IV = System.Text.Encoding.UTF8.GetBytes(myIV) 'myIV DES用8个字符,TripleDES要24个字符
- Dim ms As New System.IO.MemoryStream
- Dim cs As New System.Security.Cryptography.CryptoStream(ms, des.CreateEncryptor(), System.Security.Cryp tography.CryptoStreamMode.Write)
- Dim sw As New System.IO.StreamWriter(cs)
- sw.Write(SourceStr)
- sw.Flush()
- cs.FlushFinalBlock()
- ms.Flush()
- EncryptDes = Convert.ToBase64String(ms.GetBuffer(), 0, ms.Length)
调用
- EDes = EncryptDes(DataData(j, k).Value, "12345678", "abcdefgh")
解密
- <span style="font-size:18px;"><strong> Dim des As New System.Security.Cryptography.DESCryptoServiceProvider 'DES算法
- des.Key = System.Text.Encoding.UTF8.GetBytes(myKey) 'myKey DES用8个字符,TripleDES要24个字符
- des.IV = System.Text.Encoding.UTF8.GetBytes(myIV) 'myIV DES用8个字符,TripleDES要24个字符
- Dim buffer As Byte() = Convert.FromBase64String(SourceStr)
- Dim ms As New System.IO.MemoryStream(buffer)
- Dim cs As New System.Security.Cryptography.CryptoStream(ms, des.CreateDecryptor(), System.Security.Cryptography.CryptoStreamMode.Read)
- Dim sr As New System.IO.StreamReader(cs)
- DecryptDes = sr.ReadToEnd()</strong></span>
调用
- <span style="font-size:18px;"><strong> UserEntity.userId = DecryptDes(mydataset.Tables(0).Rows(Count).Item(0), "12345678", "abcdefgh")
- UserEntity.userName = DecryptDes(mydataset.Tables(0).Rows(Count).Item(1), "12345678", "abcdefgh")
- UserEntity.passWord = DecryptDes(mydataset.Tables(0).Rows(Count).Item(2), "12345678", "abcdefgh")
- UserEntity.realyName = DecryptDes(mydataset.Tables(0).Rows(Count).Item(3), "12345678", "abcdefgh")
- UserEntity.phoneNumber = DecryptDes(mydataset.Tables(0).Rows(Count).Item(4), "12345678", "abcdefgh")
- UserEntity.unitName = DecryptDes(mydataset.Tables(0).Rows(Count).Item(5), "12345678", "abcdefgh")
- UserEntity.unitType = DecryptDes(mydataset.Tables(0).Rows(Count).Item(6), "12345678", "abcdefgh")
- UserEntity.isDelete = DecryptDes(mydataset.Tables(0).Rows(Count).Item(7), "12345678", "abcdefgh")</strong></span>
这里,我们只是对这三个算法的简单了解,这三个算法涉及的内容是非常多的,有不对的地方请大牛们多多斧正。
转载于:https://www.cnblogs.com/miercler/p/5471692.html
加密算法—MD5、RSA、DES相关推荐
- Android MD5 RSA DES等几种加密算法
参考:http://www.2cto.com/kf/201207/138943.html http://www.iplaysoft.com/encrypt-arithmetic.html http:/ ...
- MD5 RSA DES
MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2.MD3和MD4发展而来. ...
- 3个著名加密算法(MD5、RSA、DES)的解析
MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2.MD3和MD4发展而来. ...
- Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES RSA
[最简单的加密] 1.简单的概念 明文:加密前的信息 密文:机密后的信息 算法:加密或解密的算法 密钥:算法使用的钥匙(读作miyao,正确应该是miyue,但是大家都读miyao) 2.简单的例子 ...
- JAVA加密解密→术语、密码分类、OSI与TCP/IP安全体系、Base64、消息摘要算法MD/SHA/MAC、对称加密算法DES/AES/PBE、非对称加密算法DH/RSA/EIGamaI
术语 密码分类 OSI与TCP/IP安全体系 JAVA安全 Base64算法 消息摘要算法MD 消息摘要算法MD图解 消息摘要算法SHA 消息摘要算法SHA图解 消息摘要算法MAC 消息摘要算法MAC ...
- ASP.NET加密算法(MD5/DES)
本文讲 ASP.NET的MD5和DES加密和解密算法 #region MD5算法 public string md5(string str, int code) { ...
- 常用加密算法的Java实现(一) ——单向加密算法MD5和SHA
1.Java的安全体系架构 1.1 Java的安全体系架构介绍 Java中为安全框架提供类和接口.JDK 安全 API 是 Java 编程语言的核心 API,位于 java.sec ...
- C#毕业设计——基于MD5+RSA的数字签名设计与实现(毕业论文+程序源码)——数字签名系统
基于MD5+RSA的数字签名设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于MD5+RSA的数字签名设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开题报告PPT模板及论 ...
- 加密算法-MD5算法
在一些初始化处理后,MD5以512位分组来处理输入文本,每一分组又划分为16个32位子分组.算法的输出由四个32位分组组成,将它们级联形成一个128位散列值. 首先填充消息使其长度恰好为一个比512位 ...
最新文章
- html5地理定位数据
- Win10系列:JavaScript综合实例2
- 高德机器人的名字是怎么呼叫的_“一键呼叫”上门办服务!龙岗这个“智慧社区”很贴心~...
- Python3 replace()实现字符串替换
- 另存为常用位置设置 1.0 绿色版
- (案例)使用Cookie保存用户最后一次访问的时间
- 积分图像(Integral image)
- linux 监控java内存_Linux下实用的JAVA内存泄露监控命令及工具
- 不添加外键能关联查询_SpringDataJPA关联关系
- C#3.0入门系列(八)-之GroupBy操作
- ios懒人笔记应用源码
- 为磁盘更换好看的ico图标
- 魔法才能打败魔法?银行现身说法
- ubuntu录制屏幕及视频处理
- 从多种模型中选择最合适的模型,用于行人检测
- XML解析之DOM、SAX、JAXP、DOM4J
- 《计算机程序的构造和解释》阅读笔记:准备(3)【python3简单实现lisp解释器(3)】
- ORers‘ Bling Chat | 【高光聊天记录集锦-03】:运小筹读者群里那些热烈的讨论
- Photoshopcs6 自学笔记三 画笔工具
- 程序员带你一步步分析AI如何玩Flappy Bird
热门文章
- php 数字加逗号,php数字满三位添加一逗号
- python2.7输入函数_Python2.7的用户输入函数有问题,无法让这些输入与程序一起工作...
- 达梦数据库查询数据库所有表名_达梦数据库的一些实用小SQL
- pe安装usb3.0驱动_电脑店U盘启动盘制作工具下载安装须知
- Ubuntu下安装OpenSSH Server并在客户端远程连接Ubuntu
- 力扣35. 搜索插入位置
- Win32ASM-进程学习【1】
- python:将时间戳转换成格式化日期
- java 方法 示例_Java集合syncedList()方法与示例
- goroutine并发扫描MySQL表_goroutine 并发之搜索文件内容