首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于区块链和国密算法的文件信息数据存储方法_北京工业大学_202211161053.2 

申请/专利权人:北京工业大学

申请日:2022-09-22

公开(公告)日:2024-06-21

公开(公告)号:CN115567550B

主分类号:H04L67/1097

分类号:H04L67/1097;H04L9/32;H04L9/40;H04L41/22;H04L67/02;H04L67/06

优先权:

专利状态码:有效-授权

法律状态:2024.06.21#授权;2023.01.20#实质审查的生效;2023.01.03#公开

摘要:本发明公开了一种基于区块链和国密算法的文件信息数据存储方法,为了更安全便捷的存储文件,防止被篡改,保护用户个人隐私和利益。将区块链和国密算法结合起来,使用去中心化的公开账本区块链做为存储工具。使用国密SM3哈希算法生成哈希值,提取文件信息,可占用较小的存储空间记录关键信息。采用POST请求的方式,安全快捷的传输数据。区块链后台系统中使用Kafka算法高效完成节点之间的共识,使数据一经上链便无法篡改。使用HTML\CSS\JavaScript搭建前端,查询到数据以及对应的区块信息在前端界面显示。最终能安全有效便捷的存储文件信息数据。

主权项:1.一种基于区块链和国密算法的文件信息数据存储方法,其特征在于,包括以下步骤:步骤1:搭建区块链,启动区块链系统中的各个节点,保证共识功能正常;采取一个主节点,两个从节点的区块链结构;步骤1.1:开启节点一,启动证书服务和排序服务,调用证书服务CA服务,进行注册和登记,并获取身份证书;节点一作为背书节点、提交节点和主节点,负责与其他两个节点进行共识;步骤1.2:开启节点二,启动排序服务,负责与节点一、节点三组成区块链结构,进行共识;步骤1.3:开启节点三,启动排序服务,负责与节点一、节点二组成区块链结构,进行共识;步骤2:创建并加入通道;步骤2.1:创建通道,采用通道机制使区块链中的特定节点加入通道进行交互,应用程序直接通过通道与节点进行沟通;通道相对独立的环境增加吞吐量和交易速率;步骤2.2:分别操作三个节点加入到通道中;步骤3:安装智能合约;步骤3.1:在智能合约中设定了存储在区块链中的各项文件关键数据,设定提供给用户的按哈希值、按文件名、按文件ID三种查询方法;步骤3.2:根据Fabric链码中投票、查询、上传功能,在智能合约脚本中实现相应的功能,采用富查询的方式为用户提供多个查询接口;完成区块链和前端可视化界面的对接;步骤3.3:智能合约通过点到点的方式部署在区块链中,区块链中各个节点都收到一份有效合约并进行实例化,保存在对应的区块中,使得各个节点都安全有效地运用该智能合约;步骤4:使用Node.Js在区块链后台设置两个监听端口,分别为接收数据端口和前端开启端口;步骤4.1:在区块链服务器后台开启监听的端口8088,以req.params方式获取请求参数,接收数据并上链;步骤4.2:在区块链服务器后台开启3000端口,开启前端,与前端界面进行交互;步骤5:在JAVA发送端启动软件,点击“生成哈希值”进入文件选择界面,选择文件并确认发送;步骤5.1:选择需要存储到区块链系统的文件;步骤5.2:采用国密SM3算法生成文件哈希值;提取文件名和文件路径,生成文件ID;步骤5.3:通过HTTP的POST请求向区块链后台接口发送数据;步骤6:区块链后台监听端口8088接收端口接收到数据,将数据转为十六进制字符串,并进行urlencode编码,生成处理后可以进行上链的JSON数据;步骤6.1:由于上传至区块链的数据格式必须是JSON字符串,首先对接收到的数据进行处理;将接收到的文件路径进行urlencode编码,将“:”“\”的特殊符号转为“%3A”,“%5C”,结果为:C%3A%5CUsers%5Czyz%5CDesktop%5Ctest1.zip;而后转为十六进制字符串;步骤6.2:将接收到的文件名称转为16进制字符串;步骤6.3:由于接收到的文件哈希值和文件ID已经为16进制字符串,所以不做处理;步骤6.4:将文件哈希值、文件路径、文件名、文件ID拼接,生成新的数据文件唯一身份信息码;步骤6.5:定义一个JSON数组,包括文件哈希值、文件路径、文件名、文件ID、数据文件唯一身份信息码;将JSON数组从节点一向区块链中上传;步骤7:使用Fabric区块链平台;步骤7.1:区块链后台向背书节点发送交易,背书节点验证交易,将经过背书节点签名的执行结果返回给区块链后台;步骤7.2:区块链后台向排序服务发送交易;排序服务生成新的区块;步骤7.3:将文件哈希值、文件名、文件路径、文件ID、文件唯一身份信息码写入区块中并对区块进行加密,生成区块哈希值,并发送给主节点;步骤7.4:主节点将接收到已经写入数据的区块发送到Kafka集群中,通过Kafka共识算法进行共识;节点一作为生产者,将包含需要上传到区块链的文件哈希值、文件路径、文件名、文件ID、文件唯一身份信息码数据的区块发送到Kafka集群中;发送到Kafka集群的消息会属于一个topic;每个topic有多个生产者向它发送消息,有多个消费者去消费其中的消息;节点一是提交节点,作为topic的生产者,节点二、节点三作为消费者;步骤7.5:在topic中设置分区,使分区均匀分布在节点上,每个消费者即节点二和节点三至少分配一个分区;步骤7.6:将包含文件哈希值、文件路径、文件名、文件ID、文件唯一身份信息码数据的区块投递到为节点二和节点三分配的指定分区;步骤7.7:节点二通过读取分区中的数据从Kafka集群拉取包含文件哈希值、文件路径、文件名、文件ID、文件唯一身份信息数据的区块,检验完成过后进行同步和共识;步骤7.8:节点三通过读取分区中的数据从Kafka集群拉取包含文件哈希值、文件路径、文件名、文件ID、文件唯一身份信息码数据的区块,检验完成后进行同步和共识;步骤7.9:各节点完成共识后,将写入了文件哈希值、文件路径、文件名、文件ID、文件唯一身份信息数据的区块加入到区块链中;步骤8:从节点一8088端口发送返回值;步骤9:搭建前端界面,提供查询文件关键数据和对应区块信息功能;步骤9.1:利用HTML、CSS、JavaScript搭建前端页面,让用户根据智能合约提供的按哈希值,按文件名,按文件ID三种查询方法查询文件数据和区块信息;步骤9.2:在区块链后台启动端口3000,进入可视化前端,根据在前端选择的查询方式,后台调用智能合约中提供的富查询方法,通过关键词查询文件数据信息和对应区块信息;步骤9.3:查询到结果后,经过url解码,转换时区,优化数据显示格式后,在前端界面显示。

全文数据:

权利要求:

百度查询: 北京工业大学 一种基于区块链和国密算法的文件信息数据存储方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。