首页 > 其他分享 >加密解密你了解多少?

加密解密你了解多少?

时间:2024-08-01 13:19:03浏览次数:9  
标签:加密 解密 算法 密钥 私钥 数据 多少

这个题目一写出来,笔者自己也思考了下自己在以前职业生涯中涉及到的加密解密技术,也思考了自己熟知的公知度高的几种加密方式。
下面我来说说一些理解上的东西。
加密解密中间参与的是一个算法,有这个算法规律你才可以将简单的语言或者数据转换成只有了解此算法的人才能看懂才能知道其本身含义的语言或者是数据,你做的这部分工作其实就是在加密,别人理解的过程就是解密。

定义:把一段原始数据通过某种算法处理成另外一种数据(原始数据为明文,处理后的数据为密文)。明文->密文:称之为加密。密文->明文:称之为解密。
从图中可以了解到对于加密、解密来讲算法是非常关键。但是公知度高的算法都是公开的,一旦有人想要破解这个算法,而且能够被破解了,则所有使用这个算法的产品都面临要报废、被盗版的危机。而且很多的时候做过开发的人就知道,替换一个算法的成本很大。因此一个加密出来的数据本身可靠与否,取决于密钥,而不是算法,因为密钥的调换成本比较低。
那么问题来了,什么是密钥呢?
密钥是一种参数,它是在明文->密文或密文->明文的算法中输入的数据。分为对称密钥,非对称密钥。
顾名思义,对称加密又称为私钥加密,发送方和接收方使用同一个密钥区加密解密数据。优势是加解密速度快适合于对大数据进行加密。但是密钥管理困难。
非对称加密:又称公钥加密。需要使用不同的密钥来分别完成加密和解密操作。其中一个密钥公开发布,即为公钥。另一个由用户自己秘密保存,即为私钥。发送方用对方的公钥加密数据,对方用自己的私钥解密数据。缺点在于加密解密的速度比对称密钥慢很多。
关于算法这块现在也就上面提到的对称和非对称两类。在此简单阐述下。对称算法,即单向加密算法。
对称算法:

对称算法的缺点其实是很明显的,因为其加密解密使用的都是相同的密钥,那么在整个过程中密钥存储的安全性这块就需要好好考量方案。优点前面也说过了,在此不累述。
非对称算法:

从图中可以看到加密和解密用到的不是同一个密钥,发送方使用接收方的公钥进行加密,接收方使用与之配合的私钥进行解密,整个传送过程中,加密后的数据只用接收方自己可以解密,因为只有他自己拥有私钥。
相对来说非对称算法比较安全,但是在实际使用中总归是要考虑很多的情况,权衡所有的条件。因为归根结底没有哪种算法是绝对安全绝对完美的,所以读者可以在自己的产品保密方案中涉及到几种算法。
举个简单的例子:你可以把要传递给接收方的线路加密对称秘钥,用对非称算法加密以密文的方式传递给接收方,用公钥/私钥加密,相对应的就是私钥/公钥解密。线路数据加密可以使用对称算法加密数据。
把对称算法和非对称算法糅合到一起,可以保证数据的机密性,来源的合法性。但是数据本身的完整性又该如何解决?若是有非法截取,然后乱修改一通,破坏数据的完整性接收方又该如何判断呢?
此问题的提出就涉及到了另外一种加密算法,即单项加密算法。准确来说,单向加密算法并不是一种加密技术,而是通过提取数据特征码,来验证数据的完整性。在单项算法的设计上需要考虑的两个因素:雪崩现象和定长特征。雪崩现象:任何微小的变动都可以导致结果发生巨大的变化。定长特征:不论数据本身多长,提取的特征码的长度都是固定的。
上面提到的这三种算法如果读者在设计思路中有考虑并糅合在实际中使用。最终保证数据的完整性,可靠性,机密性以及来源的合法性。希望这篇整理能对于读者在理解算法的概念上有些帮助!

标签:加密,解密,算法,密钥,私钥,数据,多少
From: https://www.cnblogs.com/x0124/p/18336455

相关文章

  • 【游戏设计随笔10】解密游戏设计的30堂课
    Part1:(1)尤里卡(Eureka)时刻是谜题的基本组成部分(原子)(2)谜题与幽默是同构的(3)最大限度提高Sparkle(闪光点)(4)避开无价值的谜题(Chaff)(5)惊喜是Sparkle的重要源泉(6)有趣的事实是惊喜的源泉(7)尤里卡不是Fiero(自豪)(8)不同解谜者寻求的解谜体验是不尽相同的(9)尤里卡是可分享的(10)创造很多尤里......
  • MYSQL 8.0 社区版的透明数据加密
    和MySQL5.0不同,MySQL8.0不再使用keyring插件,而是使用keyringcomponent。这包括:component_keyring_filecomponent_keyring_encrypted_filecomponent_keyring_ociMySQL企业版支持所有3个,MySQL社区版只支持第一个,即component_keyring_file。本文测试的也是这个。MySQL5......
  • 数组加密问题例题day05
    importjava.util.Scanner;/* 某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,最后将第一位和最后一位数字交换......
  • LKT加密芯片优势
    凌科芯安公司作为加密芯片行业的高新技术企业,通过了ISO9001质量体系标准认证,其芯片操作系统LKCOS,通过了权威部门的严格检测,通过技术自主创新研发,保护了自己的知识产权和经济利益,更有效的保护了行业内的信息安全。凭借多年的智能卡技术的深入研究的同时,以及嵌入式加密领域积累的深......
  • 协议加密
    根据上篇,如果我们通讯协议不进行加密,被人抓包后很容易解析出来,这个时候我们就需要对协议进行加密处理,协议传输本质上是传输的二进制字节流,我们可以考虑用一定的方式修改字节数据,最简单的方式是把0改成1,把1改成0,也就是直接取反,这也是一种加密方式,虽然比较容易被破解,意义不大,我们可......
  • Python应用—加密、解密文件
    1.创作需求日常生活中我们有很多文件想要保密。这个脚本可以方便大家对所有的文件类型进行加密,解密。最大程度保护我们的隐私。2.话不多说,直接上代码fromcryptography.fernetimportFernetimportdocx#加密defencrypt_file(filename):#生成密钥key=Fer......
  • AES加密时,同时设置Key和KeySize 与 仅设置Key 加密得到的结果不同
    事故现场KeySize应该是Key的长度*8(单位是bit)当我设置Key为长度32的字节数组后,(断点可以看到此时KeySize=256)加密结果符合期望;当我既设置Key(未修改),又设置KeySize=256时,加密结果不同.源码publicvirtualbyte[]Key{get{......
  • SQL中有多少Statements
    SQL(StructuredQueryLanguage)是一种用于管理和操作关系型数据库的标准编程语言。SQL语句的种类繁多,它们被设计来执行不同的数据库操作,如数据查询、数据更新、数据定义(如表和索引的创建)等。由于SQL语言不断发展并且不同数据库系统(如MySQL、PostgreSQL、SQLServer、Oracle等)可......
  • 企知道 接口逆向:AES加密
    ......
  • hawk解密分析
    碰到了使用com.orhanobut.hawk对sp进行加密的应用,分析一下除了动态调试外如何直接解密逆向的难度比较大,而且由于涉及到facebook的加密库,导致反编译后代码很难看,好在项目是开源的hawk看一下这个项目的代码,本质上用的facebook的加密库conceal这是封装在最外层的解密方法这是......