对称密钥

C#常见加密方式

旧时模样 提交于 2019-11-27 05:41:23
一、MD5 MD5消息摘要算法:一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致. 简单的说就是单向的加密,即是说无法根据密文推导出明文 MD5主要用途: 1、对一段信息生成信息摘要,该摘要对该信息具有唯一性,可以作为数字签名。 2、用于验证文件的有效性(是否有丢失或损坏的数据), 3、对用户密码的加密, 4、在哈希函数中计算散列值 通过使用MD5加密算法,我们输入一个任意长度的字节串,都会生成一个128位的整数 public static void Md5(string plaintext) { MD5 md5 = new MD5CryptoServiceProvider(); byte[] palindata = Encoding.Default.GetBytes(plaintext);//将要加密的字符串转换为字节数组 byte[] encryptdata = md5.ComputeHash(palindata);//将字符串加密后也转换为字符数组 var a = Convert.ToBase64String(encryptdata);//将加密后的字节数组转换为加密字符串 Console.Write(a); } 二、RSA 在谈RSA加密算法之前,我们需要先了解下两个专业名词,对称加密和非对称加密。

常见的加密算法

妖精的绣舞 提交于 2019-11-27 05:40:43
常见的加密算法可以分成三类,对称加密算法,非对称加密算法和 Hash 算法。 1、 对称加密 指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要 2 个密钥并交换使用,如果企业内用户有 n 个,则整个企业共需要 n × (n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦。对称加密算法的安全性取决于加密密钥的保存情况,但要求企业中每一个持有密钥的人都保守秘密是不可能的,他们通常会有意无意的把密钥泄漏出去——如果一个用户使用的密钥被入侵者所获得,入侵者便可以读取该用户密钥加密的所有文档,如果整个企业共用一个加密密钥,那整个企业文档的保密性便无从谈起。 常见的对称加密算法有 DES 、 3DES 、 Blowfish 、 IDEA 、 RC4 、 RC5 、 RC6 和 AES 2、 非对称加密 指加密和解密使用不同密钥的加密算法,也称为公私钥加密。假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。如果企业中有 n 个用户,企业需要生成 n 对密钥,并分发 n 个公钥。由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得十分简单。同时,由于每个用户的私钥是唯一的

几种常见的加密方式介绍

自古美人都是妖i 提交于 2019-11-27 05:40:26
密码学在计算机科学中使用非常广泛,HTTPS就是建立在密码学基础之上的一种安全的通信协议。HTTPS早在1994年由网景公司首次提出,而如今在众多互联网厂商的推广之下HTTPS已经被广泛使用在各种大小网站中。在完全理解HTTPS之前,有必要弄清楚一些密码学相关的概念,比如:明文、密文、密码、密钥、对称加密、非对称加密、摘要、数字签名、数字证书。 密码 密码学中的密码(cipher)和我们日常生活中所说的密码不太一样,计算机术语『密码 cipher』是一种用于加密或者解密的算法,而我们日常所使用的『密码 password』是一种口令,它是用于认证用途的一组文本字符串,这里我们要讨论的是前者:cipher。 密钥 密钥是一种参数,它是在使用密码(cipher)算法过程中输入的参数。同一个明文在相同的密码算法和不同的密钥计算下会产生不同的密文。很多知名的密码算法都是公开的,密钥才是决定密文是否安全的重要参数,通常密钥越长,破解的难度越大,比如一个8位的密钥最多有256种情况,使用穷举法,能非常轻易的破解,知名的DES算法使用56位的密钥,目前已经不是一种安全的加密算法了,主要还是因为56位的密钥太短,在数小时内就可以被破解。密钥分为对称密钥与非对称密钥。 明文/密文 明文(plaintext)是加密之前的原始数据,密文是通过密码(cipher)运算后得到的结果成为密文

常见加密方式的Python实现

浪尽此生 提交于 2019-11-27 05:35:57
常见加密方式的Python实现 1. 前言 我们所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的 Bytes 。 所以当我们在Python中进行加密操作的时候,要确保我们操作的是 Bytes ,否则就会报错。 将字符串和 Bytes 互相转换可以使用 encode() 和 decode() 方法。如下所示: # 方法中不传参数则是以默认的utf-8编码进行转换 enc = 'PyJun' . encode ( ) print ( enc ) print ( enc . decode ( ) ) # b'PyJun' # PyJun 注:两位十六进制常常用来显示一个二进制字节。 利用 binascii 模块可以将十六进制显示的字节转换成我们在加解密中更常用的显示方式: import binascii info = binascii . b2a_hex ( b 'PyJun' ) print ( info ) print ( binascii . a2b_hex ( info ) ) # b'50794a756e' # b'PyJun' 2. URL编码 正常的URL中是只能包含ASCII字符的,也就是字符、数字和一些符号。而URL编码就是一种浏览器用来避免url中出现特殊字符(如汉字)的编码方式。 其实就是将超出ASCII范围的字符转换成带 %

RSA,DSA等加解密算法介绍

守給你的承諾、 提交于 2019-11-26 17:28:57
1) MD5/SHA MessageDigest是一个数据的数字指纹.即对一个任意长度的数据进行计算,产生一个唯一指纹号. MessageDigest的特性: A) 两个不同的数据,难以生成相同的指纹号 B) 对于指定的指纹号,难以逆向计算出原始数据 代表:MD5/SHA 2) DES 单密钥算法,是信息的发送方采用密钥A进行数据加密,信息的接收方采用同一个密钥A进行数据解密. 单密钥算法是一个对称算法. 缺点:由于采用同一个密钥进行加密解密,在多用户的情况下,密钥保管的安全性是一个问题. 代表:DES 3) RSA RSA 是一种非对称加解密算法。 RSA is named from the initials of the authors, Ron Rivest, Adi Shamir, and Leonard Adleman,who first published the algorithm. RSA 与 DSA 都是非对称加密算法。其中RSA的安全性是基于极其困难的大整数的分解(两个素数的乘积);DSA 的安全性 是基于整数有限域离散对数难题。基本上可以认为相同密钥长度的 RSA 算法与 DSA 算法安全性相当。 公钥用于加密,它是向所有人公开的;私钥用于解密,只有密文的接收者持有。 适用OPENSSL 适用RSA 的命令如下: 生成一个密钥(私钥) [root

关于DH和RSA算法的简单比较

南笙酒味 提交于 2019-11-26 03:45:40
本文简单地谈下关于安全中最为常用的两个非对称加密的DH算法及RSA算法,文中无意于涉及一些数学原理,这个在网上已经有很多文章叙述了,再重复也没有太多意思(这类文章只要关注两点,**其一是密钥生成方法,其二就是数据的加解密公式**),此文仅仅是帮助一般用户能够明确地区别下这两种算法的异同和应用场合,故不会太长。 对于DH和RSA算法而言,其最大的相同点就在于它们的理论基础就是“初等数论”,既然是初等那么就意味着如果需要看懂其原理,我们只要有中学数学基础就可以了,甚至是初中数学,而不会应用到大学数学的相关内容,你无需关注什么极限、微分、积分等等,只不过RSA算法是基于所谓的“欧拉定理”(费马定理是其特例),而DH中没有非常明显的涉及,但其中有两个内容可能需要证明,本文就不涉及了,都是关于同余问题的(初等数论中的许多问题都和同余相关,其中最著名的恐怕是“孙子定理”,或可称之为”中国剩余定理“,在任何一般有关数论的书中都会描述)。 那么不同点在何处呢?其中最显著的不同之处就是DH用于动态交换密钥,它其实会在服务器和客户端各生成一个密钥对,也就是两对密钥,而且注意它是动态的;而RSA只包含一组密钥对,而且是静态的,即一旦生成了私钥就不会更改,除非显示地替换,最明显的就是更换私钥文件(因为密钥太长,一般生成后会放到文件中)。 通过简单分析

密码学技术在区块链系统中的应用

爱⌒轻易说出口 提交于 2019-11-26 03:22:56
密码学技术是区块链数据核心技术(P2P网络协议、共识机制、密码学技术、账户与存储模型)中核心的技术点,区块链主要用到的密码算法有哈希算法和加密算法,加密又包括对称性加密和非对称性加密两个概念,区块链系统里面一般常用到的是非对称加密。 本文首先把密码学相关的知识说明一下,并附有部分JAVA代码,然后用比特币作为例子说明一下在区块链系统中的使用。 【算法说明】 (一)哈希算法 哈希算法是区块链中用的最多的一种算法,它被广泛的使用在构建区块和确认交易的完整性上。 它是一类数学函数算法,又被称为散列算法,需具备三个基本特性: 1、其输入可为任意大小的字符串 2、它产生固定大小的输出 3、它能进行有效计算,也就是能在合理的时间内就能算出输出值 如果要求哈希算法达到密码学安全的话,我们还要求它具备以下三个附加特性: 1、碰撞阻力: 是指对于两个不同的输入,必须产生两个不同的输出。如果对于两个不同的输入产生了相同的输出,那么就说明不具备碰撞阻力,或是弱碰撞阻力。 2、隐秘性: 也被称为不可逆性,是指 y = HASH(x)中,通过输入值x,可以计算出输出值y,但是无法通过y值去反推计算出x值。为了保证不可逆,就得让x的取值来自一个非常广泛的集合,使之很难通过计算反推出x值。 3、谜题友好: 这个特性可以理解为,谜题是公平友好的,例如算法中 y = HASH(x),如果已知y值,想去得到x值

深入浅出HTTPS工作原理

霸气de小男生 提交于 2019-11-26 00:08:41
前言 在HTTP协议中有可能存在信息窃听或身份伪装等安全问题。使用HTTPS通信机制可以有效地防止这些问题。本文我们就了解一下HTTPS。 一、什么是 HTTPS HTTPS,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。 经常会在Web的登录页面和购物结算界面等使用HTTPS通信。使用HTTPS通信时,不再用 http:// ,而是改用 https:// 。另外,当浏览器访问HTTPS通信有效的Web网站时,浏览器的地址栏内会出现一个带锁的标记。对HTTPS的显示方式会因浏览器的不同而有所改变。 二、HTTP 与 HTTPS 的区别 HTTP 是明文传输,HTTPS 通过 SSL\TLS 进行了加密 HTTP 的端口号是 80,HTTPS 是 443 HTTPS 需要到 CA 申请证书,一般免费证书很少,需要交费 HTTPS 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。 为什么说HTTPS比较安全了,接下我们介绍下HTTP存在哪些问题? 三、HTTP通信有什么问题? 1.通信使用明文(不加密),内容可能被窃听

DES、3DES加密算法原理及其GO语言实现

久未见 提交于 2019-11-25 23:56:20
  DES加密算法,为对称加密算法中的一种。70年代初由IBM研发,后1977年被美国国家标准局采纳为数据加密标准,即DES全称的由来:Data Encryption Standard。对称加密算法,是相对于非对称加密算法而言的。两者区别在于,对称加密在加密和解密时使用同一密钥,而非对称加密在加密和解密时使用不同的密钥,即公钥和私钥。常见的DES、3DES、AES均为对称加密算法,而RSA、椭圆曲线加密算法,均为非对称加密算法。     DES是以64比特的明文为一个单位来进行加密的,超过64比特的数据,要求按固定的64比特的大小分组,分组有很多模式,后续单独总结,暂时先介绍DES加密算法。DES使用的密钥长度为64比特,但由于每隔7个比特设置一个奇偶校验位,因此其密钥长度实际为56比特。奇偶校验为最简单的错误检测码,即根据一组二进制代码中1的个数是奇数或偶数来检测错误。   Feistel网络   DES的基本结构,由IBM公司的Horst Feistel设计,因此称Feistel网络。在Feistel网络中,加密的每个步骤称为轮,经过初始置换后的64位明文,进行了16轮Feistel轮的加密过程,最后经过终结置换后形成最终的64位密文。如下为Feistel网络的示意图:     64比特明文被分为左、右两部分处理,右侧数据和子密钥经过轮函数f生成用于加密左侧数据的比特序列

Cisco路由器之IPSec 虚拟专用网(包括相关知识点以及配置实例)

怎甘沉沦 提交于 2019-11-25 22:52:37
博文大纲: 一、虚拟专用网相关概念 二、IPSec 虚拟专用网的基本概念 三、ISAKMP/IKE阶段1及阶段2的建立过程 四、IPSec 虚拟专用网的配置实现 五、总结 前言:由于“Virtual Private Network”(请看首字母,就知道是什么咯)是敏\感词汇,所以在博文中使用它的中文名字“虚拟专用网”来代替。 一、虚拟专用网相关概念。 1、虚拟专用网的定义 虚拟专用网就是在两个网络实体之间建立的一种受保护的连接,这两个实体可以通过点到点的链路直接相连,但通常情况下他们会相隔较远的距离。 对于定义中提到的“受保护”一词,可以从以下几个方面理解: 通过使用加密技术防止数据被窃听。 通过数据完整性验证防止数据被破坏、篡改。 通过认证机制实现通信方身份确认,来防止通信数据被截获和回放。 此外,虚拟专用网技术还定义了以下功能: 何种流量需要被保护。 数据被保护的机制。 数据的封装过程。 实际生产环境中的虚拟专用网解决方案不一定包含上面所有功能,还要由具体的环境需求和实现方式决定,而且很多企业可能采用不止一种的虚拟专用网解决方案。 2、虚拟专用网的连接模式 虚拟专用网的连接模式有两种:传输模式和隧道模式。 (1)传输模式: 在整个虚拟专用网的传输过程中,IP包头并没有被封装进去,这就意味着从源端的数据始终使用原有的IP地址进行通信。而传输的实际数据载荷被封装在虚拟专用网报文中