33复杂美:一文看懂加密算法为何物

news2024/9/19 10:38:03

加密算法 ,区块链底层技术的心脏究竟为何物?加密,简而言之,加密就是借助一种或多种算法将明文信息转换成密文信息,信息的接收方通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,加密

加密算法 ,区块链底层技术的心脏究竟为何物?

加密,简而言之,加密就是借助一种或多种算法将明文信息转换成密文信息,信息的接收方通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,加密算法可以分为对称加密、非对称加密和对称加密与非对称加密的结合三种形式。而在区块链技术中所使用的加密算法最常见的当属哈希算法和非对称加密两种。

哈希算法

哈希算法(Secure Hash Algorithm,SHA)是区块链数据加密应用最多、最常规的算法之一,由美国国家安全局研发,其实属于SHA家族系列,包括SHA-0、SHA-1、SHA-2和SHA-3等系列密码哈希函数,被广泛使用在构建区块和确认交易完整性方面。使用哈希算法输入任意长度字符串会输出固定长度字符串,也就是哈希值。以区块链中最常见的SHA-256哈希算法函数为例,需具备以下四种特性才能满足区块链加密需求:

1. 正向固定:输入任意长度字符串,只能输出固定统一长度的字符串(hash 值)。

2. 逆向困难:给定(若干)hash 值,在有限时间内很难(基本不可能)逆推出明文。

3. 输入敏感:只要对原始输入信息作出丝毫修改,则产生的hash 值就会完全不同。

4. 冲突避免:几乎不会找到两段内容不同的明文,它们的hash值是一致(发生冲突)。

 

哈希算法加密过程

非对称加密

在聊到非对称加密之前,我们先聊聊什么是对称加密,以便于更好地理解非对称加密。

对称加密是指加密和解密使用的是同一个密码,通过相关证件密钥就可找回密码,此过程是可逆的。过程如图所示:

对称加密过程示意图

而非对称加密,加密和解密所使用的密匙不同。需要使用公钥对信息进行加密,解密信息却只能使用私钥,私钥可以生成公钥,而公钥是无法推导出私钥,此项过程是不可逆的。若私钥一经丢失,密文信息则无法找回。非对称加密与对称加密相比,其安全系数更高,但缺点是加密和解密所花费的时间较长、速度较慢。

过程如下:

 

非对称加密过程示意图

加密是如何实现的呢

在区块链的加密过程中,有的网络同时用到了哈希加密和非对称加密两种,加密过程更为复杂,也更为安全可靠。用户(发送方)通过哈希函数对想要加密的信息进行哈希处理,然后输出一个全网唯一、固定长度的字符串信息,同时利用公钥对信息进行加密、签名,然后将其上传到区块链网络。

接收方则利用接收到的公钥对信息进行解密,若对比后明文一致,那么接收方就能确认传输的文件并未受到篡改,是安全可信的,即可进行下一步处理。

过程如下:

 

区块链加密过程示意图

目前,在区块链信息保护中,需同时使用哈希算法和非对称加密才能完成信息加密工作,相信随着科技的进步,未来基于密码学的加密技术将不断被挖掘完善,造福大众。

关于复杂美

复杂美成立于2008年,拥有撮合交易系统低延时、高并发的核心技术。2013 年启动区块链、智能合约的研发与创新,2014 年申请第一个区块链发明专利:钱包找回功能,并在2017 年 12 月获得授权。5年来,复杂美始终重视技术的自我研发与创新,根据国家知识产权局专利检索系统显示,复杂美目前已累计申请了600多项区块链技术的发明专利,160余项已经获得授权,与蚂蚁集团,腾讯科技等同列区块链专利发明排行榜全球前七,全国前三。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/344028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++:类和对象(下)

文章目录1 再谈构造函数1.1 构造函数体赋值1.2 初始化列表1.3 explicit关键字2 static成员2.1 概念2.2 特性3 友元3.1 友元函数&#xff08;流插入&#xff08;<<&#xff09;及流提取&#xff08;>>&#xff09;运算符重载&#xff09;3.2 友元类4 内部类5 匿名对…

使用脚本以可读的 JSON 格式显示 curl 命令输出

在我们经常调试微服务或者使用 Elasticsearch API 时&#xff0c;经常会使用curl 来进行调试。但是有时我们的输出不尽如意。显示的不是一 pretty 格式进行输出的。我们有时还必须借助于其他的一些网站工具&#xff0c;比如 Best JSON Formatter and JSON Validator: Online JS…

叮!一大波来自客户的感谢信

春风渐暖&#xff0c;美好如期&#xff0c;祝福的话语在日子的酝酿里更值得期待。神策数据走过 7 载春秋&#xff0c;描绘的大数据分析和营销科技图景在时间的打磨下清晰可见。时光沉淀经验&#xff0c;匠心兑换卓越&#xff0c;这条终点叫做「帮助中国三千万企业重构数据根基&…

类与对象(上)

类与对象(上) 1.面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间…

vite从零创建react-ts项目

1.创建vite-react-ts文件夹&#xff0c;初始化项目 npm init 初始化后可以看到包管理文件package.json 2.项目结构 根目录下新建index.html模板文件。以往都是放在public文件夹的&#xff0c;但是官方推荐放在根目录。这是有意而为之的&#xff1a;在开发期间 Vite 是一个服…

qt之条形码与二维码的生成

一、简介 条形码&#xff1a; 条形码(barcode)是将宽度不等的多个黑条和空白&#xff0c;按照一定的编码规则排列&#xff0c;用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条&#xff08;简称条&#xff09;和白条&#xff08;简称空&#xff09;排…

探讨接口测试以及其用例设计方法

接口测试的总结文档 第一部分&#xff1a;主要从问题出发&#xff0c;引入接口测试的相关内容并与前端测试进行简单对比&#xff0c;总结两者之前的区别与联系。但该部分只交代了怎么做和如何做&#xff1f;并没有解释为什么要做&#xff1f; 第二部分&#xff1a;主要介绍为什…

数据结构:带环单链表基础OJ练习笔记(leetcode142. 环形链表 II)(leetcode三题大串烧)

目录 一.前言 二.leetcode160. 相交链表 1.问题描述 2.问题分析与求解 三.leetcode141. 环形链表 1.问题描述 2.代码思路 3.证明分析 下一题会用到的重要小结论&#xff1a; 四.leetcode142. 环形链表 II 1.问题描述 2.问题分析与求解 Judgecycle接口&#xf…

婴儿监视器美国亚马逊CPC认证ASTM F2951标准要求?

婴儿监视器&#xff0c;又称婴儿监听器、婴儿监护器&#xff0c;英文名为( baby monitor其主要用于用于居家和婴儿的监听和护理。欧美市场上广泛使用&#xff0c;已经存在30年历史的 Baby Monitor是采用现代无线电技术应用于居家和婴儿的监听和护理的好帮手。婴儿监护器由看器(…

基于Jeecgboot前后端分离的ERP系统开发系列--出库单(1)

这次从出库单开始进行整个单据录入显示的模板&#xff0c;不再采用默认的online表单代码生成的方式&#xff0c;以满足实际的业务需要&#xff0c;当然刚开始做&#xff0c;以后还需要进行改进。 一、首先单号生成 采用系统开发里的代码编码规则&#xff0c;相应的修改增加代码…

7、MyBatis框架——MyBatis对一对一关系的处理、分步查询、MyBatis对一对多关系的处理

目录 一、项目框架搭建 二、在实体类中添加额外属性实现多表查询 1、mybatis两表关联查询 &#xff08;1&#xff09;实体类类型映射规则 &#xff08;2&#xff09;代码演示 2、分步查询 &#xff08;1&#xff09;autoMapping开启自动映射 &#xff08;2&#xff09;…

Python-正则表达式详解-快速掌握正则表达式核心函数

正则表达式为为高级的文本模式匹配、抽取或文本形式的搜索和替换功能提供了基础。本文主要介绍python正则表达式的一些基础功能&#xff0c;掌握它也可以使得在python编程中处理字符串游刃有余。1.简介正则表达式是一些由字符和特殊符号组成的字符串&#xff0c;匹配一系列有相…

Ansible的安装及部署

目录 一、Ansible对于企业运维的重大意义 二、Ansible的安装 三、构建Ansible清单 1.直接书写受管主机名或ip&#xff0c;每行一个 2.设定受管主机的组[组名称] 四、Ansible配置文件参数详解 1、配置文件的分类与优先级 2.配置新用户的Ansible配置 3.生成免密认证 本章…

算法 ——世界 二

个人简介&#xff1a;云计算网络运维专业人员&#xff0c;了解运维知识&#xff0c;掌握TCP/IP协议&#xff0c;每天分享网络运维知识与技能。个人爱好: 编程&#xff0c;打篮球&#xff0c;计算机知识个人名言&#xff1a;海不辞水&#xff0c;故能成其大&#xff1b;山不辞石…

Linux管道选取命令:cut、grep

选取命令就是将一段数据经过分析后&#xff0c;取出我们所想要的&#xff0c;或是经历分析关键词&#xff0c;取得我们所想要的那一行 一般来说&#xff0c;选取信息通常是针对一行一行来分析的&#xff0c;而不是整篇信息分析 下面介绍两个很常用的信息选取命令&#xff1a;…

Numpy基础与实例——人工智能基础——机器学习

文章目录一、Numpy概述1. 优势2. numpy历史3. Numpy的核心&#xff1a;多维数组4. 内存中的ndarray对象4.1 元数据&#xff08;metadata&#xff09;4.2 实际数据二、numpy基础1. ndarray数组2. arange、zeros、ones、zeros_like3. ndarray对象属性的基本操作3.1 修改数组维度3…

dubbo接口自动化用例性能优化

dubbo接口自动化用例性能优化 目录&#xff1a;导读 前言 优化本地调试时间 单用例执行时间的优化 提高并发 最后 前言 去年换了一个新部门&#xff0c;看了下当前的自动化用例的情况&#xff0c;发现存在三类性能问题&#xff1a; 本地调试运行时等待时间较长&#xf…

C++学习记录——팔 内存管理

文章目录1、动态内存管理2、内存管理方式operator new operator delete3、new和delete的实现原理1、动态内存管理 C兼容C语言关于内存分配的语法&#xff0c;而添加了C独有的东西。 //int* p1 (int*)malloc(sizeof(int));int* p1 new int;new是一个操作符&#xff0c;C不再需…

【工具】图片和PDF批量区域OCR识别图片文字并重命名,如何批量图片识别文字并将识别的文字改名该图片

前段时间接到一个棘手的难题&#xff08;识别图片文字&#xff0c;将图片文件名改成该文字&#xff09; 因为不解决就得手动挨个挨个输入然后把文件命名好 今天又一个文件需求是这样的 图上有姓名文字&#xff0c;要识别出来改成每一张图跟这个一样&#xff0c;有的人说了缩…

学习笔记——吴恩达《神经网络与深度学习》

神经网络与深度学习1. 基础知识神经网络用神经网络进行监督学习2. 神经网络基础知识二分分类logistic回归logistic回归损失函数梯度下降法导数计算图logistic回归中的梯度下降法m个样本的梯度下降向量化Python中的广播3. 浅层神经网络神经网络概述神经网络表示计算神经网络的输…