数字签名

【DotNet加密方式解析】-- 好文收藏

匆匆过客 提交于 2020-03-28 02:38:43
索引: 目录索引 By -- 彭泽 一、 DotNet加密方式解析--散列加密 笔记 :   散列加密种类:     1.MD5 128位     2.SHA-1 160位     3.SHA-256 256位     4.SHA-384 384位     5.SHA-512 512位 二、 DotNet加密方式解析--对称加密 笔记:   对称加密种类:     1.Rijndael算法:运用反复运算的加密算法,允许数据区块及秘钥长度可变,数据区块与秘钥长度变动时是各自独立的。     2.DES算法:       a)DES加密:采用的是分组加密方式,使用56位秘钥加密64位明文,最后产生64位密文。       b)3DES加密:采用168位的秘钥,三重加密,速度比较慢。       c)TripleDES加密:用两个秘钥对数据进行3次加密解密运算。     3.RC算法:       a)RC2加密:运用秘钥长度可变,对明文采取64位分组加密。       b)RC4加密:运用一个秘钥长度可变的面向字节流的加密算法,以随机置换为基础。       c)RC5加密:运用一种分组长度、秘钥长度、加密迭代轮数都可变的分组加密算法(包含秘钥扩展、加密算法、解密算法)。       d)RC6加密:RC6继承了RC5的循环移位思想,RC6是输入的明文由原先2个区扩展为4个块区。 三、

浅谈加密算法

帅比萌擦擦* 提交于 2020-03-28 02:37:52
前言 数字签名、信息加密 是前后端开发都经常需要使用到的技术,应用场景包括了用户登入、交易、信息通讯、oauth 等等,不同的应用场景也会需要使用到不同的签名加密算法,或者需要搭配不一样的 签名加密算法 来达到业务目标。这里简单的给大家介绍几种常见的签名加密算法和一些典型场景下的应用。 正文 1. 数字签名 数字签名,简单来说就是通过提供 可鉴别 的 数字信息 验证 自身身份 的一种方式。一套 数字签名 通常定义两种 互补 的运算,一个用于 签名,另一个用于 验证。分别由 发送者 持有能够 代表自己身份 的 私钥 (私钥不可泄露),由 接受者 持有与私钥对应的 公钥 ,能够在 接受 到来自发送者信息时用于 验证 其身份。 注意 :图中 加密过程 有别于 公钥加密 ,更多 介绍戳这里 。 签名 最根本的用途是要能够唯一 证明发送方的身份 ,防止 中间人攻击 、 CSRF 跨域身份伪造 。基于这一点在诸如 设备认证 、 用户认证 、 第三方认证 等认证体系中都会使用到 签名算法 (彼此的实现方式可能会有差异)。 2. 加密和解密 2.1. 加密 数据加密 的基本过程,就是对原来为 明文 的文件或数据按 某种算法 进行处理,使其成为 不可读 的一段代码,通常称为 “密文”。通过这样的途径,来达到 保护数据 不被 非法人窃取、阅读的目的。 2.2. 解密 加密 的 逆过程 为 解密,即将该

如何面对最强算法MD5被破译

社会主义新天地 提交于 2020-03-27 10:15:32
在2004年召开的国际密码学年会上,来自中国山东大学王小云教授的一篇关于"破译MD5、HAVAL-128、MD4以及RIPEMD-128算法"的 报告引起了轰动,报告中提到的新破译方法几乎标志着世界通信密码标准——MD5堡垒的轰然倒塌。一石激起千层浪,此前一直负责公开征集针对MD5的攻击而 设立的权威站点http://www.md5crk.com/宣布"由于MD5破译获得突破性进展,MD5破解项目(MD5CRK Project)即日停止",并开始提供该站点以往技术资料的下载,预计该站点也将在不久的将来完全关闭。面对MD5被破译,有人一声叹息,有人觉得不可 思议,更有人忧虑甚至恐慌......那么究竟MD5有什么来头?它被破译是否意味着"地球将不再旋转"?谁将成为它的继承者? 一、MD5是何方神圣? 所 谓MD5,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2、MD3、MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公钥加密算法标准RSA的第一设 计者R.Rivest于上个世纪90年代初开发出来的。MD5的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人密钥前"压缩"成一 种保密的格式,关键之处在于——这种"压缩"是不可逆的。 为了让读者朋友对MD5的应用有个直观的认识

公钥,私钥和数字签名这样最好理解

匆匆过客 提交于 2020-03-25 05:54:01
一、 公钥 加密 假设一下,我找了两串数字,一串是1*,一串是2*。我喜欢2*这串数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1*是我的公钥。 我有一个文件,不能让别人看,我就用1*加密了。别人找到了这个文件,但是他不知道2*就是解密的私钥啊,所以他解不开,只有我可以用 串2*,就是我的私钥,来解密。这样我就可以保护数据了。 我的好朋友x用我的公钥1*加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,但是别人解不开,因为别人不知道2*就是我的私钥, 只有我才能解密,解密后就得到a。这样,我们就可以传送加密的数据了。 二、 私钥 签名 如果我用私钥加密一段数据(当然只有我可以用私钥加密,因为只有我知道2*是我的私钥),结果所有的人都看到我的内容了,因为他们都知 道我的公钥是1*,那么这种加密有什么用处呢? 但是我的好朋友x说有人冒充我给他发信。怎么办呢?我把我要发的信,内容是c,用我的私钥2*,加密,加密后的内容是d,发给x,再告诉他 解密看是不是c。他用我的公钥1*解密,发现果然是c。 这个时候,他会想到,能够用我的公钥解密的数据,必然是用我的私钥加的密。只有我知道我得私钥,因此他就可以确认确实是我发的东西。 这样我们就能确认发送方身份了。这个过程叫做数字签名。当然具体的过程要稍微复杂一些。用私钥来加密数据,用途就是 数字签名 。 总结:公钥和私钥是成对的

MD5算法分析

て烟熏妆下的殇ゞ 提交于 2020-03-24 06:13:19
1、 MD5是什么? MD5即Message-Digest Algorithm 5(消息摘要算法第五版)的简称,是当前计算机领域用于确保信息传输完整一致而广泛使用的散列算法之一(又译哈希算法、摘要算法等),主流编程语言普遍已有MD5的实现。 2、 什么是散列算法? 在信息安全技术中,经常需要验证消息的完整性,散列(Hash)函数提供了这一服务,它对不同长度的输入消息,产生固定长度的输出。这个固定长度的输出称为原输入消息的“散列”或“消息摘要”(Message digest)。 3、 散列函数的基本特性 散列函数必须具备两个基本特征:单向性和碰撞约束。 3.1、单向性是指其的操作方向的不可逆性,在散列函数中是指只能从输入推导出输出,而不能从输出计算出输入; 3.2、碰撞约束是指不能找到一个输入使其输出结果等于一个已知的输出结果 或者不能同时找到两个不同的输入使其输出结果完全一致。 一个函数只用同时严格的具备了这样的特性,我们才能认可这样的一个HASH。 4、单向性的典型运用: 4.1、密码加密 利用散列函数的单向性,我们能够实现口令,密码等安全数据的安全存储。密码等很多关键数据我们需要在数据库中存储,但是在实际运用的过程中,只是作比较操作,因此我们可以比较HASH结果。 5、碰撞约束的典型运用: 5.1、用做字典的键(可哈希)

SSL CA 电子签章

时光怂恿深爱的人放手 提交于 2020-03-23 12:12:28
一、 SSL (Secure Socket Layer) 为 Netscape 所研发,用以保障在 Internet 上数据传输之安全,利用数据加密 (Encryption) 技术,可确保数据在网络 上之传输过程中不会被截取及窃听。目前一般通用之规格为 40 bit 之安全标准,美国则已推出 128 bit 之更高安全 标准,但限制出境。只要 3.0 版本以上之 I.E. 或 Netscape 浏览器即可支持 SSL 。 当前版本为 3.0 。它已被广泛地用于 Web 浏览器与服务器之间的身份认证和加密数据传输。 SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。 SSL 协议可分为两层: SSL 记录协议( SSL Record Protocol ):它建立在可靠的传输协议(如 TCP )之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL 握手协议( SSL Handshake Protocol ):它建立在 SSL 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 SSL 协议提供的服务主要有: 1 )认证用户和服务器,确保数据发送到正确的客户机和服务器; 2 )加密数据以防止数据中途被窃取; 3 )维护数据的完整性,确保数据在传输过程中不被改变。 SSL 协议的工作流程:

公钥,私钥和数字签名

泄露秘密 提交于 2020-03-18 11:23:22
一、 公钥 加密 假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。 我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用 数字2,就是我的私钥,来解密。这样我就可以保护数据了。 我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,但是别人解不开,因为别人不知道2就是我的私钥, 只有我才能解密,解密后就得到a。这样,我们就可以传送加密的数据了。 二、 私钥 签名 如果我用私钥加密一段数据(当然只有我可以用私钥加密,因为只有我知道2是我的私钥),结果所有的人都看到我的内容了,因为他们都知 道我的公钥是1,那么这种加密有什么用处呢? 但是我的好朋友x说有人冒充我给他发信。怎么办呢?我把我要发的信,内容是c,用我的私钥2,加密,加密后的内容是d,发给x,再告诉他 解密看是不是c。他用我的公钥1解密,发现果然是c。 这个时候,他会想到,能够用我的公钥解密的数据,必然是用我的私钥加的密。只有我知道我得私钥,因此他就可以确认确实是我发的东西。 这样我们就能确认发送方身份了。这个过程叫做数字签名。当然具体的过程要稍微复杂一些。用私钥来加密数据,用途就是 数字签名 。 总结: 公钥和私钥是成对的,它们互相解密。 公钥加密

加密学详细介绍

孤街醉人 提交于 2020-03-17 01:15:06
加密学介绍  密码锁:是对里面贵重东西进行加密  钥匙:对加密的锁进行解密  计算机只能识别0和1两个数字 将现在世界中的东西映射为比特序列的操作称为编码 m -> 01101101 i -> 01101001 d -> 01100100 n -> 01101110 i -> 01101001 g -> 01100111 h -> 01101000 t -> 01110100  异或运算 异或运算的举例 0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 1 XOR 1 = 0 结论:可以根据B和C推到出A 0 1 0 0 1 1 0 0 A 1 0 1 0 1 0 1 0 B 1 1 1 0 0 1 1 0 C  加密和解密的初始模型 对称加密  对称加密 又称为共享密钥加密,它使用同一个密钥对数据进行加密和解密  适合于加密大数据  算法:DES(56bit) 3DES(168bit) AES(比较多) 工作原理  发送方: 明文数据 ------------对称算法(DES-56bit)-----------得到密文数据 得到56bit的密钥  接收方: 提前获知56bit密钥-------解密密文数据--------明文数据 优点  速度快 适合对大数据进行加密  安全  紧凑 加密1G的数据 加密出来之后 密文数据大概1G左右

IPsec入门篇讲解(第一篇)

旧巷老猫 提交于 2020-03-16 00:38:21
IPsec概述  在Internet的传输中,绝大部分数据的内容都是明文传输的,这样就会存在很多潜在的危险,比如:密码、银行帐户的信息被窃取、篡改,用户的身份被冒充,遭受网络恶意***等。网络中部署IPSec后,可对传输的数据进行保护处理,降低信息泄露的风险  IPsec (Internet Protocol Security)是一个工业标准网络安全协议(公有协议),它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合,为IP网络通信提供透明的安全服务,保护TCP/IP通信免遭窃听和篡改,可以有效抵御网络***,同时保持易用性  IPsec是一个公有协议 华为 思科 华三都支持支持该协议  IPsec是一个协议框架 不是单独的一个协议  IPsec可以使两个公司之间在internet网络传输数据时 保护数据安全性  IPSec通过验证头AH(Authentication Header)和封装安全载荷ESP(Encapsulating Security Payload)两个安全协议实现IP报文的安全保护  AH是报文头验证协议,主要提供数据源验证、数据完整性验证和防报文重放功能,不提供加密功能  ESP是封装安全载荷协议,主要提供加密、数据源验证、数据完整性验证和防报文重放功能  AH和ESP都能够提供数据源验证和数据完整性验证

对apk进行数字签名

半腔热情 提交于 2020-03-15 06:29:32
APK签名用处主要有两种:   1. 使用特殊的key签名可以获取到一些不同的权限。   2. APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉,这个很有用哦。   目前Google在Android系统方面的态度和策略也都是非盈利性质的,和Symbian的签名有本质的区别,而我们使用Eclipse+ADT插件从开发环境安装到手机中的APK文件已经包含了ADT插件的Debug签名文件,所以没有安装,但是最终发行的版本需要自己的key去签名。 (1)必备工具:Sun官方网站下载JDK,安装后产生的keytool和jarsigne两个系统工具。 http://java.com/zh_CN/download/installed.jsp 安装后到(2) 而对于两个工具和keystore的介绍请看: jdk工具keytool和jarsigner帮助Part1(jdk keytool&jarsigner tool manual) 和 jdk工具keytool和jarsigner帮助Part2(jdk keytool&jarsigner tool manual) (2)生成keystore cmd下:   进入到jdk的bin目录,这样的话,android.keystore文件就会生成在这个目录下