精华内容
下载资源
问答
  • SSL的加密和解密过程

    千次阅读 2020-08-25 10:01:44
    这三种加密解密技术的组合就是现在电子商务的基础,它们三个有各自最适合的领域,而且所要完成的功能也是不同的,大家都知道,只要我们连上互联网,那么我们就相当于大门洞开,我们的一些隐私,跟其他人对话内容等都...

    现在的加密/解密技术主要有三种:对称加密,非对称加密,和单向加密
    这三种加密解密技术的组合就是现在电子商务的基础,它们三个有各自最适合的领域,而且所要完成的功能也是不同的,大家都知道,只要我们连上互联网,那么我们就相当于大门洞开,我们的一些隐私,跟其他人对话内容等都有可能会被人窃听,最常见的比如man in the middle(中间人),它主要是因为双方身份无法验证的时候回话被劫持造成的,就是说通信双方都以为是在跟对方交流,其实内容都可能已经被这个“中间人”修改过,一些重要的信息也被这个“中间人”所获得,这对于现在的电子商务来说是致命的,所有我们必须找到一种解决方案来解决这个问题

    对称加密:指的是加密方和解密方使用的是同一个密钥
    优点:加密解密的速度很快
    缺点:如果两个从未通信过的用户要进行通信的时候,该如何把解密的密钥传输给对方呢(密钥仍然要在网络上传输,所以密钥还是可能会被“中间人”截获),这是对称加密最大的缺点;
    常见的对称加密算法有:
    DES:使用56位的密钥,2000年的时候被人破解了,所以现在基本不再使用
    AES:高级加密标准,可以使用128,129,256三种长度密钥
    其他的还有blowfish,Twofish和RC6,IDEA(商业算法),CAST5等

    非对称加密:非对称加密方式解决了对称加密的缺陷,它的加密和解密密钥是不同的,比如对一组数字加密,我们可以用公钥对其加密,然后我们想要将其还原,就必须用私钥进行解密,公钥和私钥是配对使用的,常见的非对称加密算法有:
    RSA:既可以用来加密解密,又可以用来实现用户认证
    DSA:只能用来加密解密,所以使用范围没有RSA广
    非对称加密长度通常有512,1024,2048,4096位,最常用的就是2048位,长度固然可以增加安全性但是需要花费很长时间来进行加密/解密,和对称加密相比,加密/解密的时间差不多是对称加密的1000倍,所以我们通常用其作为用户认证,用对称加密来实现数据的加密/解密

    单项加密:单向加密就是用来计算一段数据的特征码的,为了防止用户通过“暴力破解”的方式解密,所以单向加密一般具有“雪崩效应”就是说:只要被加密内容有一点点的不同,加密所得结果就会有很大的变化。单项加密还有一个特点就是无论被加密的内容多长/短,加密的结果(就是提取特征码)是定长的,用途:用于验证数据的完整性,常用的单项加密算法
    MD5:这种加密算法固定长度为128位
    SHA1:这种加密算法固定长度是160位

    加密解密的流程图:

    在这里插入图片描述
    私钥: 随机数+Key值+公钥

    BOB和ALICE通信阶段:

    黑框A:表示要传输的数据

    黑框B:表示黑框A经过单向加密后的特征码,这段特征码同时运用了非对称加密,具体过程是用BOB的私钥加密,传输给ALICE,只要到达后ALICE能解密,表明对方确实是BOB。这一过程同时起到了用户认证和数据完整性的校验。黑框B又称为数字签名

    红框A: 这一阶段会生成一段很长的随机数(密钥)然后配合对称加密算法对黑框A和黑框B加密

    红框B:这一阶段是用ALICE的公钥加密这串随机数(对称加密阶段的密钥),ALICE接受到数据后如果能用自己私钥解密,那就证明接受者确实ALICE

    加密过程:
    第一步:用单向加密算法提取数据(黑框A)的特征值
    第二步:用自己的私钥加密这段特征值形成黑框B
    第三步:用对称加密算法,对黑框A和黑框B来加密,得到红框A
    第四步:用ALICE的公钥来加密第三步所用的密钥,得到红框B

    解密过程:
    第一步:ALICE用自己的私钥解密红框B得到对称加密的密钥
    第二步:用这个密钥解密红框A内容
    第三步:用BOB的公钥解密黑框B,如果能成功,说明发送方确实是BOB,这就完成了身份验证(解密后会得到一串数据的特征值)
    第四步:用同样的单项加密算法来对这段数据提取特征值,如果和第三步的特征值一样,说明这段数据是完整的,这就完成了数据完整性的校验

    进行完上述内容厉害的读者会发现一个问题就是BOB和ALICE如何获得对方的公钥,或者说如何证明获得的公钥就是对方,这就需要引入另一方证书颁发机构CA,下面是对证书颁发机构跟BOB/ALICE之间的解释

    黑框C:代表要颁发给BOB/ALICE的公钥,组织,地址等信息

    黑框D:是对黑框C进行单向加密后得到的数字签名,然后用自己的公钥对其加密,传输给BOB和ALICE,拿着这个证书颁发机构的公钥(这些证书颁发机构的公钥一般已经被microsoft事先放在windows里面,当然其他操作系统也是一样的)的BOB和ALICE如果能对这个证书进行解密,说明这个证书颁发机构不是冒充的

    红框E:表示颁发给BOB和ALICE的证书

    展开全文
  • 简单加密和解密,讲述 加密的思想是,解密加密的逆过程
  • RSA加密算法加密解密过程解析

    千次阅读 2015-01-28 17:18:53
    RSA加密算法加密与解密过程解析 ... ...加密算法根据内容是否可以还原分为 可逆加密...可逆加密根据其加密解密是否使用的同一个密钥而可以分为 对称加密非对称加密。 所谓对称加密即是指加密解密时使用的是

    RSA加密算法加密与解密过程解析

    1.加密算法概述

    加密算法根据内容是否可以还原分为 可逆加密和非可逆加密 。

    可逆加密根据其加密解密是否使用的同一个密钥而可以分为 对称加密和非对称加密。

    所谓对称加密即是指在加密和解密时使用的是同一个密钥:举个简单的例子,对一个字符串C做简单的加密处理,对于每个字符都和A做异或,形成密文S。解密的时候再用密文S和密钥A做异或,还原为原来的字符串C。这种加密方式有一个很大的缺点就是不安全,因为一旦加密用的密钥泄露了之后,就可以用这个密钥破解其他所有的密文。

    非对称加密在加密和解密过程中使用不同的密钥,即公钥和私钥。公钥用于加密,所有人都可见,私钥用于解密,只有解密者持有。就算在一次加密过程中原文和密文发生泄漏,破解者在知道原文、密文和公钥的情况下无法推理出私钥,很大程度上保证了数据的安全性。

    此处,我们介绍一种非常具有代表性的非对称加密算法,RSA加密算法。RSA算法是1977年发明的,全称是RSA Public Key System,这个Public Key就是指的公共密钥。

    2.密钥的计算获取过程 

    密钥的计算过程为:首先选择两个质数p和q,令n=p*q。

    令k=ϕ(n)=(p−1)(q−1),原理见4的分析

    选择任意整数d,保证其与k互质

    取整数e,使得[de]k=[1]k。也就是说de=kt+1,t为某一整数。

    3.RSA加密算法的使用过程

    同样以一个字符串来进行举例,例如要对字符串the art of programming进行加密,RSA算法会提供两个公钥e和n,其值为两个正整数,解密方持有一个私钥d,然后开始加密解密过程过程。

    1.      首先根据一定的规整将字符串转换为正整数z,例如对应为0到36,转化后形成了一个整数序列。

    2.      对于每个字符对应的正整数映射值z,计算其加密值M=(N^e)%n. 其中N^e表示N的e次方。

    3.      解密方收到密文后开始解密,计算解密后的值为(M^d)%n,可在此得到正整数z。

    4.      根据开始设定的公共转化规则,即可将z转化为对应的字符,获得明文。

    4.RSA加密算法原理解析

    下面分析其内在的数学原理,说到RSA加密算法就不得不说到欧拉定理。

    欧拉定理(Euler’s theorem)是欧拉在证明费马小定理的过程中,发现的一个适用性更广的定理。

    首先定义一个函数,叫做欧拉Phi函数,即ϕ(n),其中,n是一个正整数。

    ϕ(n)=总数(从1到n−1,与n互质整数)

    比如5,那么1,2,3,4,都与5互质。与5互质的数有4个。ϕ(5)=4

    再比如6,与1,5互质,与2,3,4并不互质。因此,ϕ(6)=2

    对于一个质数p来说,它和1, 2, 3, …, p – 1都互质,所以ϕ(p)=p−1。比如ϕ(7)=6,ϕ(11)=10

    欧拉定理叙述如下:

    欧拉定理:如果n是一个正整数,a是任意一个非0整数,且n和a互质。那么,a^ϕ(n)−1可以被n整除。

    推论1:如果m和n是互质的正整数。那么,ϕ(mn)=ϕ(m)ϕ(n)

    推论2:[ab]n=[[a]n[b]n]n

    证明:假设a和b除以n的余数为c1,c2。a和b可以写成a=nt1+c1,b=nt2+c2。那么,ab=n2t1t2+nt1c2+nt2c1+c1c2。因此ab除以n的余数为c1c2。即[ab]n=[a]n[b]n。

    有以上定理后,由此可以推导出RSA算法的内在原理 。

    根据欧拉定理,对于任意z,如果z与n互质,那么:

    [z^ϕ(n)]n=[z^k]n=[1]n

    因此,

    [z^(de)]n=[z^(kt+1)]n=[z^(kt)*z]n=[z^kt]n*[z]n= [z]n   因为[z^k]n = [1]n

    上面主要使用了de=kt+1以及推论2。也就是说:

    [z^(de)]n=[z]n

    根据2的推论,有

    ([z^e]n)^d=[z]n

    即d个余数相乘,因为其乘积可能大于n,所以由[ab]n=[[a]n[b]n]n,例如令a和b都为5,n为3,可知该结论

    故上式可描述为[([z^e]n)^d]n=[z]n=z,就是原数字乘方求余数,然后再乘方求余数后得到原来数字的过程,得证。

    公开的加密方式,私有的解密方式。RSA安全的关键在于很难对一个大的整数进行因子分解。

    5.RSA加密的缺点

    1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。 2)安全性,RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价,而且密码学界多数人士倾向于因子分解不是NP问题。

    3)速度太慢,由于RSA 的分组长度太大,为保证安全性,n 至少也要 600 bitx以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。

    展开全文
  • python加密和解密 您是视觉学习者吗? YouTube上查看本教程。 点击这里 加密是对信息进行编码的过程,只有授权方才能访问它。 这一点至关重要,因为它可以安全地保护您不希望任何人看到或访问的数据。 本...

    python加密和解密

    您是视觉学习者吗? 在YouTube上查看本教程。 点击这里

    加密是对信息进行编码的过程,只有授权方才能访问它。 这一点至关重要,因为它可以安全地保护您不希望任何人看到或访问的数据。

    在本教程中,您将学习如何使用Python使用加密库对文件或任何字节对象(也包括字符串对象)进行加密

    我们将使用对称加密,这意味着与加密数据相同的密钥也可用于解密。 那里有很多加密算法,我们要使用的库是建立在AES算法之上的。

    注意:了解加密和 哈希算法 之间的区别很重要 ,在加密中,一旦拥有密钥,便可以检索原始数据,而在 哈希函数中 则不能,因此,它们被称为单向加密。

    让我们从安装加密开始:

    pip3 install cryptography

    打开一个新的Python文件,让我们开始吧:

    from cryptography.fernet import Fernet
    

    生成密钥

    Fernet是对称身份验证密码技术的实现,让我们首先生成该密钥并将其写入文件:

    def write_key () :
        """
        Generates a key and save it into a file
        """
        key = Fernet.generate_key()
        with open( "key.key" , "wb" ) as key_file:
            key_file.write(key)

    generate_key()函数会生成一个新的Fernet密钥,您确实需要将其保存在安全的地方,如果丢失了该密钥,则将无法再解密使用此密钥加密的数据。

    由于此密钥是唯一的,因此我们不会在每次加密任何内容时生成密钥,因此我们需要一个函数来为我们加载该密钥:

    def load_key () :
        """
        Loads the key from the current directory named `key.key`
        """
        return open( "key.key" , "rb" ).read()

    字符串加密

    现在我们知道了如何获取密钥,让我们从加密字符串对象开始,只是为了让您首先熟悉它。

    生成密钥并将其写入文件:

    # generate and write a new key
    write_key()

    让我们加载该密钥:

    # load the previously generated key
    key = load_key()

    一些消息:

    message ="some secret message" .encode()
    

    我们需要对字符串进行编码,以将其转换为适合加密的字节,encode()方法使用utf-8编解码器对该字符串进行编码。 使用该键初始化Fernet类:

    # initialize the Fernet class
    f = Fernet(key)

    加密消息:

    # encrypt the message
    encrypted = f.encrypt(message)

    f.encrypt()方法对传递的数据进行加密,这种加密的结果称为“ Fernet令牌”,并具有强大的隐私性和真实性保证。

    让我们看看它的外观:

    # print how it looks
    print(encrypted)

    输出:

    b'gAAAAABdjSdoqn4kx6XMw_fMx5YT2eaeBBCEue3N2FWHhlXjD6JXJyeELfPrKf0cqGaYkcY6Q0bS22ppTBsNTNw2fU5HVg-c-0o-KVqcYxqWAIG-LVVI_1U='
    

    解密:

    decrypted_encrypted = f.decrypt(encrypted)
    print(decrypted_encrypted)
    b'some secret message'
    

    的确是同一条信息。

    f.decrypt()方法解密Fernet令牌。 成功解密后,这将返回原始明文作为结果,否则将引发异常。

    有关更多详细信息和说明,请查阅密码学的官方文档

    另外,如果您对密码学感兴趣,我个人建议您阅读“ 严重密码学”书,因为它非常适合您并且数学上不太详细。

    翻译自: https://hackernoon.com/how-to-encrypt-and-decrypt-data-in-python-53193yhj

    python加密和解密

    展开全文
  • SRTP加密解密过程

    2018-06-05 17:20:40
    RTP数据包,将负载数据经过AES加密加密后,进行加密传输时,对方只要知道秘钥即可对加密数据解密
  • 加密视频解密过程

    万次阅读 2018-12-25 09:33:43
    视频共享、交互是互联网时代的具体表现,在线学习视频是现在人的生活方式,我们需要下载很多视频进行学习,但是很多优质的视频资源都进行了加密保护,当你发现下载的视频提示你需要输入播放密码的时候,点击视频不能...

    视频共享、交互是互联网时代的具体表现,在线学习视频是现在人的生活方式,我们需要下载很多视频进行学习,但是很多优质的视频资源都进行了加密保护,当你发现下载的视频提示你需要输入播放密码的时候,点击视频不能播放,的确是很郁闷,那加密视频如何破解?有播放密码的视频如何破解呢?

    一:工具

    • OllyICE v2.01b 看雪专版修正版

    • PEiD 0.94优化版

    1.本次经验主要针对飓风加密、三分屏加密的视频,具体图标如下。首先打开PEiD 0.94优化版工具,选择加密视频,拖进PEiD 0.94面板中,观察视频是否加壳,主要是查看[Overlay],如果出现[Overlay],说明未加壳,就比较容易处理。

    2.其次打开OllyICE v2.01b 看雪专版修正版,要是汉化专业版,并且里边包含文件(如下图两个txt文档),这是破解加密视频的脚本语言,这个很关键。

    3.将加密视频文件复制到工具目录下,最好复制到工具目录下,使用OllyDBG载入加密视频,会出现英文提示“模块‘视频教程’的快速统计报告表明其代码段可能被压缩,加密或包含大量的嵌入数据,代码分析将是非常不可靠或完全错误的。您仍要继续分析吗?”,这里选择是就会播放视频,我们这里要选择否。

    4.这时候光标会显示在有浅蓝色背景的一行代码上,这些不用管,单击右键->运行脚本->打开“Molebox 2.x Unpacker OEP Finder Script modified by zhupf.txt”和“Molebox 2.x Unpacker and OEP Finder by Cherry”,可以先后运行这两个文档。

    5.这个时候会开始分析,会出现一个DOS窗口,提示“cannot continue!”,此时,在工具目录中会出现一个文件夹,名字!UNPACKED!,破解后的视频就在里边,默认为wmv格式。

    这个时候视频就没有密码了!

    展开全文
  • 加密解密过程

    千次阅读 2018-06-09 17:36:09
    加密过程改成:1、DES加密2、Base64编码3、URL编码解密过程是:1、URL解码2、Base64解码3、DES解密
  • 详细演示AES加密解密过程.AES是分组密钥,算法输入128位数据,密钥长度也是128位。用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表1所列)。每一轮都需要一个与输入分组具有相同长度的扩展密钥...
  • 使用Oracle的存储过程对数据进行加密和解密 Java调用存储过程
  • C#文件加密和解密

    万次阅读 多人点赞 2017-07-28 00:14:15
    //由于项目需要,要对文件进行加密操作,所以对这个功能做了一点学习。不难,需要注意的地方也不多: ...一、算法首先,文件要加密就一定要解密,所以一定要找个能解密的算法,这个不用多说……其实加密解密算法也
  • DEC 加密和解密

    千次阅读 2015-07-19 22:28:08
    DEC 加密和解密通用帮助类: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System...
  • 解决URL传输过程中得加密解密问题,无论多少个参数,地址栏上显示的只有一个经过加密得URL,到达客户端再解密成多个参数值,同时可以解密字符串,加密字符串
  • PHP开发过程中AES加密解密问题 js前端AES加密,PHP解密
  • 数字签字认证机构是电子商务的核心技术。数字签名作为目前Internet电子商务重要的技术,不断地进行改进,标准化。本文从数字签名的意义出发,详细介绍了数字签名涉及到的内容与算法,并自行结合进行改进。  ...
  • Java实现HTTPS加密解密过程

    千次阅读 2017-02-07 23:13:40
    1.HTTPS握手过程模拟 以下文章来自:http://kingj.iteye.com/blog/2103662 1.1准备工作  1、创建java证书:  C:\> keytool -genkey -alias wangyi -keypass wangyi -keyalg RSA -keysize 1024 -keystore ...
  • 悬而未决:MSSQL存储过程加密和解密MSSQL的存储过程竟然也能被加密?!CREATE PROCEDURE encrypt_this WITH ENCRYPTIONCREATE Trigger encrypt_this WITH ENCRYPTION我想知道的是,这个加密目前有破解的工具吗...
  • Android自带的加密和解密

    千次阅读 2015-09-09 09:57:50
    当今社会信息安全越来越重要,其中最为关键的就是传输过程中的安全。这就需要一套安全可靠且有效的加密和解密算法来实现。 Android中有一套成熟的加密和解密的模块。下面不多说直接上代码,大家一看就知道了! ...
  • RSA加密和解密的完整过程

    万次阅读 2014-06-30 09:19:21
    解密过程: B接收到密文c,使用自己的私钥解密c得到明文m数字签名sB使用A的公钥解密数字签名s解密得到H(m).B使用相同的方法提取消息m的消息摘要h(m)B比较两个消息摘要。相同则验证成功;不同则验证
  • phpjm php加密解密过程

    千次阅读 2017-04-25 10:38:10
    看了一下用的是phpjm.net的加密。 其实还是挺简单的,主要是利用了php变量名和数组索引名支持特殊字符,准确的来说是: \$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* phpjm就是把里面的变量名弄成乱码,然后再
  • HTTPS加密解密过程

    千次阅读 2019-04-18 16:11:15
    http协议直接放置TCP协议之上,而https提出httpTCP中间加上一层加密层。从发送端看,这一层负责把http的内容加密后送到下层的TCP,从接收方看,这一层负责将TCP送来的数据解密还原成http的内容。 SSL...
  • //获取已经加密的数据流 byte[] getStream = Encryption_Decryption.EncryptString(strArray, keyArray, IVArray); //获取已经解密的数据流 byte[] finalPlainTextArray = Encryption_Decryption....
  • 我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。... ...服务端客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密解密,验证的,且看下图。 1
  • 实际使用过程中我们常常需要对明文的文档内容进行加密处理,本示例使用异或的方式对文档内容加密解密再一次运行程序即可
  • 软件开发中,经常要对数据进行传输,数据传输的过程中可能被拦截,被监听,所以传输数据的时候使用数据的原始内容进行传输的话,安全隐患是非常大的。因此就要对需要传输的数据进行客户端进行加密,然后...
  • mcrypt启用、加密以及解密过程详解

    千次阅读 2012-05-30 15:32:10
    标准的PHP安装过程中并没有把Mrcypt安装上,但PHP的主目录下包含了libmcrypt.dlllibmhash.dll文件 (libmhash.dll是Mhash扩展库,这里可以一起装上)。首先,将这两个文件复制到系统目录windows\system32下,然后...
  • RSA加密和解密流程

    千次阅读 2019-05-14 14:22:21
    通过一对密钥完成加密和解密过程加密是为了防止信息被泄露,而签名是为了防止信息被篡改。 var A = 客户端 var B = 服务端 1、客户端向服务端发送一条消息 B生成一对密钥(公钥私钥),私钥不公开,自己...
  • 该工具类中用到了BASE64,需要...RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密过程中需要分块进行。 RSA加密对明文的长度是有限制的,如果加密数据过大会抛出如下异常:  ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 130,518
精华内容 52,207
关键字:

在加密和解密过程中