加密相关

IKE(Internet Key Exchange):密钥交换

    密钥交换,双方通过交换密钥来实现数据加密解密。
    密钥交换的两种方式:
        1.对称密钥加密:
            将公钥加密后通过网路传输到对方进行解密,这种方式有很大可能被截取破解,所以不常用。
        2.DH (Deffie-Hellman) :
            双方共有一些参数,共同协商加密算法,除此之外双方还有属于自己的私有参数,通过共有的参数、私有参数和算法信息来进行加密。
            然后双方将计算后的结果进行交换,交换完成后再后属于自己私有的参数进行特殊算法,经过双方计算后的结果是相同的,而这个结果就是密钥。
            参看:https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
            DH的实现:
                1 、A: a,p  协商生成公开的整数a,大素数p
                    B: a,p
                2 、A: 生成隐私据数据 :x (x<p ),计算得出 a^x%p ,发送给B
                    B: 生成隐私据数据 :y, 计算出得出a^y%p ,发送给A
                3 、A:计算得出 [(a^y%p)^x] %p = a^xy%p,生成为密钥
                    B:计算得出 [(a^x%p)^y] %p = a^xy%p ,生成为密钥

数字签名

    数字签名就是对非对称加密和摘要算法的一种应用,能确保信息在发布后不会被篡改,保证数据的完整性和可信性(摘要算法特性)。
    同时也可以防止数据被他人伪造(非对称加密算法特性)。
    数字签名可快速验证文本的完整性和合法性。
    实现过程:
        加密过程:
            数据,通过摘要算法得到数据的摘要,之后使用私钥加密得到密文(签名),然后将源文件、密文(签名)以及公钥一起发布出去。
        解密过程:
            首先验证公钥是否是发布者的公钥,然后用公钥对密文进行解密得到摘要,使用发布组对文本同样的摘要算法得到摘要文本,比对摘要是否一致即可确认信息是否被篡改或者是否是发布者发布的。

随机数生成器:(伪随机数字)random和urandom

    在操作系统上有一个叫熵池的地方,用来保存硬件中断参数的随机数(每次硬件中断都会产生一个随机数)
    /dev/random:
        仅从熵池返回随机数,随机数用尽,取随机数的进程将被阻塞
    /dev/urandom:
        先从熵池取随机数,随机数用尽,就通过伪随机数生成器生成随机数, 非阻塞。

原文地址:https://www.cnblogs.com/shenxm/p/8451891.html

时间: 2024-11-06 11:24:11

加密相关的相关文章

ios开发Base64编码以及加密相关学习

一:.Base64补充 ```objc 1.Base64简单说明 描述:Base64可以成为密码学的基石,非常重要. 特点:可以将任意的二进制数据进行Base64编码 结果:所有的数据都能被编码为并只用65个字符就能表示的文本文件. 65字符:A~Z a~z 0~9 + / = 对文件进行base64编码后文件数据的变化:编码后的数据~=编码前数据的4/3,会大1/3左右. 2.命令行进行Base64编码和解码 编码:base64 123.png -o 123.txt 解码:base64 123

了解加密相关

// // ViewController.m // 06 了解加密相关 // // Created by kun on 16/8/15. // Copyright © 2016年 kun. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewD

MD5加密相关

demo效果 Md5类 其中有一个引用   using System.Security.Cryptography; using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace MD5加密 { public class MD5Fun {

加密相关内容

md5加密(正常的md5,加盐,动态加盐) import hashlib md5 = hashlib.md5() md5.update(b'alex3714') print(md5.hexdigest()) 应用于密码的密文存储,文件的一致性校验 import hashlib md5 = hashlib.md5() md5.update(b'alex3714') ret = md5.hexdigest() md =hashlib.md5() md.update(b'alex') md.updat

加密类型及其相关算法

在互联网通信过程中,如何保证数据的安全性? 在通信过程中,数据安全主要从三个方面考虑:机密性(数据的内容不能被窃取) 完整性(数据的内容不能被修改) 身份验证(确定通信双方的身份) 加密类型:1.对称加密,加密和解密使用同一个密钥,但是密钥如何安全传输比较重要,对称加密数度较快,适于加密数据 2.单向加密,提取数据指纹,主要用于保证数据的完整性 单向加密的特点:输入相同则输出一定相同 雪崩效应:输入的微小改变会引起结果的巨大反差 定长输出 3.非对称加密,使用一对密钥(public-key和pr

python之路 正则表达式,模块导入的方法,hashlib加密

一.正则表达式re python中re模块提供了正则表达式相关操作 字符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 次数: * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 模式 描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾. . 匹配任意字符,除了换行符,当re.DO

Des 对称加密算法 加密\解密实例

Des 加密相关类介绍: SecureRandom  这个类是继承自java.util.Random 这个类 SecureRandom 这个类的构造器有三种,下面例举两种: SecureRandom()构造一个实现默认随机数算法的安全随机数生成器 (RNG). SecureRandom(byte[] seed)构造一个实现默认随机数算法的安全随机数生成器 (RNG). DESKeySpec 这个类是用来使用原始秘钥来生成秘钥的秘钥内容 DESKeySpec 有两个构造函数: DESKeySpec

RSA加密:利用模数和指数生成公钥加密

引子    目前做一款金融产品,由于涉及到资金安全,采用动态公钥的方式,即客户端每次登录服务端返回一个不同的XML串,由公钥的模数和指数构成,我需要用这个串生成公钥加密相关信息.服务端返回的XML串形如:“<RSAKeyValue><Modulus>wVwBKuePO3ZZbZ//gqaNuUNyaPHbS3e2v5iDHMFRfYHS/bFw+79GwNUiJ+wXgpA7SSBRhKdLhTuxMvCn1aZNlXaMXIOPG1AouUMMfr6kEpFf/V0wLv6NCH

【WP开发】加密篇:双向加密

说起双向加密,如果以前在.NET开发中弄过加/解密的朋友都不会陌生,常用的算法有DES.AES等.在RT应用程序中,也提供了加密相关的API,算法自然是一样的,只是API的封装方式不同罢了,因为RT不完全是托管代码,而又类似于COM的形式公开,这对于低端设备来说,性能可以提升,当然了,对于高端设备来说无所谓. 在WP的RT应用中,涉及到加/解密的API都在以下几个命名空间里,大家要用的就在里面找,也不是所有类都会用得上,加密一般就用两大类:需要恢复内容时选用双向加密,如DES.AES等算法:如果