你可以这么理解。
不过准确来说,将“密文”变为“明文”的过程被称为解密
解密是一个生活用词,同时也是计算机专业的一个专业用词。
从生活用词的解释:
解密是指解除对某些文件,某个事件的保密规定,允许对外公开。举例:美国前总统肯尼迪1963年被刺杀身亡,但是因为该事件可能涉及美国的国家安全,所以这件事被保密了。1992年10月26日,美国总统的老布什签署了一项法案,要求所有肯尼迪遇刺案相关政府档案须在25年之后对外解密。2017年26日,超过3100份遇刺案相关档案的预定解密期限已到,美国国家档案馆当晚公开其中2800份,同时,总统唐纳德·特朗普以“可能损害国家安全”为由,选择暂不公开其余数百份档案。
计算机专业用词解释:
计算机在信息保存和传递过程中,出于对信息安全的考虑会对保存或传递的信息(明文)进行加密处理防止信息被第三方获取以后读取查看,对加密的信息(密文)进行处理使其变为可以读取查看的信息(明文),这一过程叫做解密。举例:我现在要向你发送我的银行卡密码123(明文),我现在给密码加密即给所有的数字乘以2,那么我发送给你的就是246(密文).你收到246(密文)以后给这一组数字除以2得到123(明文)的过程就叫做解密。
加密(Encode),就是把用一定规则(密钥)将明文变为密文,解密(Decode)当然就是相反的咯,把密文还原为明文,其中加密方法又有对称和非对称之分,总之里面学问大得很,有兴趣找本密码学或者计算机安全相关的书看看就知道了。
将明文转换成密文的过程叫加密,将密文经过逆变换恢复成明文的过程叫解密。
一般是指密码在经过人工加密后,所传输的直接信息被加密,称为“密文”。
而接受方通过共同的密码破译方法将其破译解读为直接的文字或可直接理解的信息,称为“明文”。
编码: 将计算机中的字符串按照一定的顺序表示成二进制数据的过程
各国字符编码都不一样:
1、计算机- 表示[英文字母、数字、部分特殊符号]- ascii编码 [0~256]
2、万国码,统一字符编码[号称可以统一全球范围内任何语言的表示方式]
任何语言中的任何数据,都可以使用一个字符来表示 unicode编码
3、中国有GB2312- GBK - GB18030
4、数据传输编码:unicode transfer format 8 bit [UTF-8]
python中的编码解码:
要命的规则:字符串的编码解码,一直都是任何语言中一个难点和重点
任何字符串-都是由字节组成的!
python3中:字符:(str);字节(bytes)
字符-字节:encode 编码:将一个字符串编码成计算机可以操作的二进制数据
字节-字符:decode 解码:将一个二进制数据按照指定的编码~解码成自然数据
什么是加密: 将一个明文数据,按照指定的算法,运算得到一个其他的可以隐藏真实信息的密文数据,这个过程称为加密;处理的算法称为加密算法;用到的关键数据称为密钥
什么是解密: 按照指定的算法和关键数据,将一个密文数据进行逆向运算得到正确的明文数据的过程成为解密操作
(1)、单向加密算法:只能加密,不能解密的算法
如:用户账号密码(单向加密)存储,此时任何人都不能查看该用户的明文密码
流程-用户输入明文密码-加密-和存储的密文密码进行比较-相等-成功
单向散列加密算法- MD5加密
单项哈希加密算法- SHAX加密
(2)、双向加密算法:可以加密,加密的数据可以解密得到明文数据
使用在更多的场景;数据进行加密传输-目标地址-解密得到明文数据进行处理
对称加密:加密和解密使用相同的秘钥;
非对称加密:加密和解密使用不同的秘钥;如HTTPS传输数据
hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法
注意: hashlib 加密啊的字符串类型为二进制编码,直接加密字符串会报如下错误:
有两种方式可以将字符串转化为二进制数据