CN109543443A - 基于区块链的用户数据管理方法、装置、设备和存储介质 - Google Patents
基于区块链的用户数据管理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN109543443A CN109543443A CN201811207004.1A CN201811207004A CN109543443A CN 109543443 A CN109543443 A CN 109543443A CN 201811207004 A CN201811207004 A CN 201811207004A CN 109543443 A CN109543443 A CN 109543443A
- Authority
- CN
- China
- Prior art keywords
- code key
- random number
- block
- sub
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及加密技术领域,尤其涉及一种基于区块链的用户数据管理方法、装置、设备和存储介质。其中方法包括:获取用户数据,调用预设的随机数发生器生成随机数,通过根秘钥和随机数生成子秘钥,采用子秘钥对用户数据进行加密,生成密文;将密文和随机数生成数据区块,将数据区块在区块链系统中上链,形成新的区块链;接收第三方机构发送的共享秘钥请求,从共享秘钥请求中获取随机数,通过根秘钥和随机数再次生成子秘钥,并将子秘钥返回给第三方机构。本发明通过随机数与根秘钥一起再生成子秘钥,对用户数据进行加密,生成密文。只有将子秘钥共享给第三方机构,第三方机构才能对密文进行解密,实现用户自己掌握子密钥的目的。
Description
技术领域
本发明涉及加密技术领域,尤其涉及一种基于区块链的用户数据管理方法、装置、设备和存储介质。
背景技术
秘钥,即密钥,在密码学中,秘钥是指某个用来完成加密、解密、完整性验证等密码学应用的秘密信息。密码学的发展促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。
秘钥中的对称加密算法是应用较早的加密算法。在对称加密算法中,数据发信方将明文(原始数据)和加密秘钥一起经过加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的秘钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的秘钥只有一个,发收信双方都使用这个秘钥对数据进行加密和解密,这就要求解密方事先必须知道加密秘钥。
另外,在办理相关用户业务时,用户的信息一般由第三方机构管理,用户对私密信息没有控制权,而各公司之间的信息也无法共享,用户需要反复的将自己的用户数据发送或填写给第三方机构。如果将用户的信息都放到区块链系统上,如果对每条用户信息都加密,则用户需要管理大量私钥。
发明内容
有鉴于此,有必要针对用户加密数据存储在区块链上时,用户需要管理大量秘钥的的问题,提供一种基于区块链的用户数据管理方法、装置、设备和存储介质。
一种基于区块链的用户数据管理方法,包括如下步骤:
获取用户输入的用户数据,调用预设的随机数发生器生成一随机数,通过预设的根秘钥和所述随机数生成一个对称加密的子秘钥,采用所述子秘钥对所述用户数据进行加密,生成密文;
将所述密文和所述随机数生成数据区块,将所述数据区块在区块链系统中上链,形成新的区块链;
接收办理用户业务的第三方机构发送的共享秘钥请求,所述共享秘钥请求中包含有所述随机数,从所述共享秘钥请求中获取所述随机数,通过所述根秘钥和所述随机数再次生成一个对称加密的所述子秘钥,并将所述子秘钥返回给所述第三方机构。
在其中一个实施例中,所述调用预设的随机数发生器生成一随机数,包括:
在存储介质中预设random()函数,通过调用所述random()函数生成所述随机数。
在其中一个实施例中,所述通过预设的根秘钥和所述随机数生成一个对称加密的子秘钥,包括:
调用预设的秘钥生成工具,设置加密算法的名称;
将随机数赋值于所述秘钥生成工具,将所述根秘钥设置为所述秘钥生成工具的口令;
通过所述秘钥生成工具生成一个对称加密的子秘钥。
在其中一个实施例中,所述将所述密文和所述随机数生成数据区块,将所述数据区块在区块链系统中上链,形成新的区块链,包括:
获取用户输入的标识,所述标识是所述密文和所述随机数对应的唯一标记;
建立数据区块,将所述密文记录到所述数据区块的区块体中,将所述随机数和所述标识记录到所述数据区块的区块头中;
根据所述区块链系统的链式结构,将所述数据区块在所述区块链系统中上链,形成新的区块链。
在其中一个实施例中,所述将所述密文和所述随机数生成数据区块,将所述数据区块在区块链系统中上链,形成新的区块链后,还包括:
将上链的所述数据区块对应的哈希值、所述随机数和对应的标识记录在预设的区块列表中;
将上链的所述数据区块广播给所述区块链系统中的其他节点,所述其他节点接收到广播后将所述哈希值、所述随机数和对应的标识记录至各自节点预设的区块列表中。
在其中一个实施例中,所述从所述共享秘钥请求中获取所述随机数,通过所述根秘钥和所述随机数再次生成一个对称加密的所述子秘钥,并将所述子秘钥返回给所述第三方机构,还包括:
在所述区块列表中查找与所述随机数对应的标识,将所述标识通过预设的显示界面进行显示,供用户确定所述标识是否为办理用户业务所需标识;
接收到用户反馈的所述标识不是办理用户业务所需标识时,将错误随机数提示返回给所述第三方机构;
否则,通过所述根秘钥和所述随机数再次生成一个对称加密的所述子秘钥,并将所述子秘钥返回给所述第三方机构,所述第三方机构通过所述随机数在区块链系统中获取密文,采用子密钥对密文进行解密,得到明文。
在其中一个实施例中,还包括授权查看数据:
获取用户发送的授权请求和第三方机构信息,将所述区块列表中所有的标识通过预设的显示界面进行显示,供用户查看和选择要授权的标识;
获取用户反馈的标识,从所述区块列表中获取所述标识对应的随机数,通过所述根秘钥和所述随机数再次生成所述子秘钥;
将所述子秘钥和所述标识发送给所述第三方机构,所述第三方机构通过所述标识在区块链系统中获取密文,采用子密钥对密文进行解密,得到明文。
一种基于区块链的用户数据管理装置,包括如下模块:
生成密文模块,用于获取用户输入的用户数据,调用预设的随机数发生器生成一随机数,通过预设的根秘钥和所述随机数生成一个对称加密的子秘钥,采用所述子秘钥对所述用户数据进行加密,生成密文;
上链模块,用于将所述密文和所述随机数生成数据区块,将所述数据区块在区块链系统中上链,形成新的区块链;
共享秘钥模块,用于接收办理用户业务的第三方机构发送的共享秘钥请求,所述共享秘钥请求中包含有所述随机数,从所述共享秘钥请求中获取所述随机数,通过所述根秘钥和所述随机数再次生成一个对称加密的所述子秘钥,并将所述子秘钥返回给所述第三方机构。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述基于区块链的用户数据管理方法的步骤。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述基于区块链的用户数据管理方法的步骤。
上述基于区块链的用户数据管理方法、装置、设备和存储介质,包括获取用户输入的用户数据,调用预设的随机数发生器生成一随机数,通过预设的根秘钥和所述随机数生成一个对称加密的子秘钥,采用所述子秘钥对所述用户数据进行加密,生成密文;将所述密文和所述随机数生成数据区块,将所述数据区块在区块链系统中上链,形成新的区块链;接收办理用户业务的第三方机构发送的共享秘钥请求,所述共享秘钥请求中包含有所述随机数,从所述共享秘钥请求中获取所述随机数,通过所述根秘钥和所述随机数再次生成一个对称加密的所述子秘钥,并将所述子秘钥返回给所述第三方机构。本发明通过将随机数发生器生成的随机数与预设的根秘钥一起再生成子秘钥,对用户数据进行加密,生成密文,每次加密的子秘钥都是随机的,其他人员即使知道根秘钥,也无法对密文进行解密。只有将子秘钥共享给第三方机构,第三方机构才能对密文进行解密。本发明还将密文保存在区块链系统上,区块链系统中的所有节点均可以下载区块链系统中的密文,即能实现信息共享的目的,又实现用户自己掌握子密钥的目的。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1为一个实施例中的基于区块链的用户数据管理方法的流程图;
图2为一个实施例中步骤S1中生成子秘钥过程的流程图;
图3为一个实施例中步骤S2的流程图;
图4为一个实施例中步骤S3的流程图;
图5为一个实施例中的基于区块链的用户数据管理装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
图1为本发明一个实施例中的基于区块链的用户数据管理方法的流程图,包括如下步骤:
步骤S1,生成密文:获取用户输入的用户数据,调用预设的随机数发生器生成一随机数,通过预设的根秘钥和随机数生成一个对称加密的子秘钥,采用子秘钥对用户数据进行加密,生成密文。
本发明可以用于用户加密数据的客户端,客户端可以包括计算机终端、手机终端等。客户端可以设置信息输入界面,信息输入界面设有数据上传接口或数据输入字段。通过信息输入界面获取需要加密的用户数据。
在一个实施例中,调用预设的随机数发生器生成一随机数,包括:
在存储介质中预设random()函数,通过调用random()函数生成随机数。
random()函数用于生成随机数,调用前,random()函数可以预先设置在客户端的存储介质中。
本实例为了用户无需管理大量的私钥,且为了当秘钥丢失时也不能破译密文,加入了生成随机数步骤,通过生成的随机数与根秘钥一起再生成子秘钥的方式,用户无需管理大量私钥,不同用户数据随机数不同,用于加密的子秘钥不同,因此可以避免其他人员破解秘钥对所有用户数据能容易解密的问题,保证了用户数据的安全性。
在一个实施例中,参照图2,通过预设的根秘钥和随机数生成一个对称加密的子秘钥,包括:
步骤S101,获取秘钥生成器:调用预设的秘钥生成工具,设置加密算法的名称。
在客户端预先设置一秘钥生成工具,用于生成子秘钥。本步骤中的加密算法可以是Blowfish算法、DES算法、DESede算法、HmacMD5算法或HmacSHA1算法中的任一一项。其中,Blowfish算法是一个64位分组及可变秘钥长度的对称秘钥分组密码算法,可用来加密64比特长度的字符串。Blowfish算法具有加密速度快、紧凑、秘钥长度可变、可免费使用等特点。DES算法全称为Data Encryption Standard,即数据加密标准,是一种使用秘钥加密的块算法,DES算法具有秘钥较短、加密处理简单、加解密速度快的优点,适用于加密大量数据的场合。DESede算法是由DES算法改进后的一种对称加密算法,具有极其强大的安全性。HMACMD5算法是从MD5哈希函数构造的一种键控哈希算法,被用作基于哈希的消息验证代码(HMAC),HMACMD5算法是一种不可逆的加密算法,对应任何字符串都可以加密成一段唯一的固定长度的代码。HmacSHA1算法基于HMACMD5算法,HmacSHA1算法使用哈希函数对混合结果进行哈希计算,将所得哈希值与秘钥混合,然后再次应用哈希函数,输出的哈希值长度为160位。
在本步骤中,可以预先设置Java的秘密秘钥工厂SecretKeyFactory类,通过调用SecretKeyFactory类中的getInstance()方法,设置加密算法的名称。如指定“DES”加密算法,则秘钥生成器为:
SecretKeyFactory keyFactory=SecretKeyFactory.getInstance("DES");
步骤S102,确定口令和随机数:将随机数赋值于秘钥生成工具,将根秘钥设置为秘钥生成工具的口令。
为了将随机数和根秘钥共同参与生成子秘钥,本步骤将随机数赋值给SecretKeyFactory类中的byte数组,将根密钥设置为SecretKeyFactory类的PBEKeySpec口令。
步骤S103,生成秘钥:通过秘钥生成工具生成一个对称加密的子秘钥。
本步骤可以通过调用SecretKeyFactory类中的generateSecret()方法,基于byte数组和口令,生成一个对称加密的子秘钥。本步骤生成的子秘钥可以保存在客户端的存储介质中。为了避免子秘钥的泄密,也可以在加密完成后,放弃对子秘钥的存储。
本实施例,在用户无需输入密码的前提下,通过预设的SecretKeyFactory类,对每次需要加密的用户数据均构建和生成一个唯一的子秘钥,用于加密,子秘钥自动生成,且无需用户管理若干子秘钥。
步骤S2,将密文上链:将密文和随机数生成数据区块,将数据区块在区块链系统中上链,形成新的区块链。
区块链系统是一种基于区块链技术的系统,也被称为分布式账本技术,是一种互联网数据库技术。其特点是去中心化、公开透明,让每个用户均可参与维护数据库记录。区块链系统主要包括网络层、共识层和数据层等。区块链系统是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法,而底层数据区块以链式结构呈现,即区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
本步骤的客户端可以注册成为区块链系统中的某一节点,可以设置为客户端节点,拥有生成区块、查询和获取区块中的数据的权限,整个区块链系统中可具有多个客户端节点。在客户端节点进行注册时,可以生成一个初始区块,初始区块记录客户端节点用户的基本信息等。后续客户端节点对用户输入的加密后的用户数据和随机数一起生成数据区块,并在区块链系统中上链时,可以链接到此用户对应的初始区块中。本步骤的用户数据并非由一个中心化的机构进行记录,区块链系统中所有的节点均可以参与和维护用户数据,实现用户数据共享的目的。
在一个实施例中,参照图3,步骤S2,包括:
步骤S201,获取标识:获取用户输入的标识,标识是密文和随机数对应的唯一标记。
客户端还接受用户输入的标识,在密文和随机数较多的情况下,可以根据用户自定义的标识,容易确定某一密文对应的随机数。获取时可以通过预设的信息输入界面,信息输入界面设有标识字段。用户通过信息输入界面可以依次输入标识和用户数据。
步骤S202,生成数据区块:建立数据区块,将密文记录到数据区块的区块体中,将随机数和标识记录到数据区块的区块头中。
区块链系统中的区块均包含区块体和区块头,其中,区块体用于记录加密的用户数据,区块头中包含区块的哈希值等信息。本步骤在生成的数据区块时,将随机数和标识一起记录到数据区块中,以便于区块链系统中的其他节点根据随机数或标识查找对应的密文,客户端的用户也可以通过区块链系统获取随机数,重新生成子秘钥。
步骤S203,形成新的区块链:根据区块链系统的链式结构,将数据区块在区块链系统中上链,形成新的区块链。
本步骤中,将新生成的数据区块链接至已有的区块链上,加密的用户数据在区块链系统中被永久的存储。链接时,可以将新生成的数据区块根据用户注册情况,链接到用户对应的初始区块所在的区块链的最后。
本实施例通过标识对随机数进行标记,将密文、随机数和标识一起上链,区块链系统中的任一节点均可以通过标记了解对应的密文代表的用户数据,例如,用户自定义标识为身份信息,则此对应数据区块的区块头中保存的密文则为此用户的身份信息内容,身份信息内容包括身份证号码、家庭地址等。通过用户自定义的标识,可以很容易的定位对应的用户数据。
在一个实施例中,在步骤S2后,还包括:将上链的数据区块对应的哈希值、随机数和对应的标识记录在预设的区块列表中;将上链的数据区块广播给区块链系统中的其他节点,其他节点接收到广播后将哈希值、随机数和对应的标识记录至各自节点预设的区块列表中。
在区块链系统中的所有节点均预设一张区块列表,包含用户或客户端信息、标识、对应的唯一随机数和唯一哈希值。随机数用于重新生成子秘钥,哈希值用于查找区块链系统中对应的数据区块,从而从数据区块中获取密文。客户端在上链完成后,不仅将哈希值、随机数和对应的标识记录在自身存储介质中的区块列表中,还将这些信息进行广播,其他节点也分别记录这些信息,保证区块链系统中所有节点同步已上链的数据区块对应的信息。
在区块链系统中的各个节点可以预先约定好标识及标识对应的密文意义,以便于各个节点容易查找到对应的密文。本实施例的区块列表,可以采用表格的形式:
名称 | 标识 | 随机数 | 密文 |
客户1 | 身份信息 | **************** | XXXX XXXX XXXX XXXX |
客户2 | 身份信息 | **************** | XXXX XXXX XXXX XXXX |
客户1 | 病历信息 | **************** | XXXX XXXX XXXX XXXX |
客户1 | 学历信息 | **************** | XXXX XXXX XXXX XXXX |
本实施例通过对已上链的数据区块对应的哈希值、随机数和标识的记录和广播,保证了区块链系统中所有节点均能同步已上链数据区块对应的信息,实现信息共享的目的。
步骤S3,共享秘钥:接收办理用户业务的第三方机构发送的共享秘钥请求,共享秘钥请求中包含有随机数,从共享秘钥请求中获取随机数,通过根秘钥和随机数再次生成一个对称加密的子秘钥,并将子秘钥返回给第三方机构。
本步骤中的办理用户业务的第三方机构注册成为区块链系统中的机构节点,机构节点可以拥有查询和获取区块中的数据的权限,整个区块链系统中可具有多个机构节点。机构节点可以从自身区块列表中,或者从区块链系统中获取办理业务所需的随机数,若含有标识,也可以获取标识,将随机数或标识以共享秘钥请求的方式发送给客户端节点,客户端节点接收到此请求后,获取随机数或标识,如获取的是标识,则通过自身区块列表中获取标识对应的随机数,通过根秘钥和随机数再次生成子秘钥,发送给机构节点。机构节点通过随机数或标识在区块链系统中获取密文,用此子秘钥对密文进行解密,生成明文。
在一个实施例中,参照图4,步骤S3,还包括:
步骤S301,查找标识:在区块列表中查找与随机数对应的标识,将标识通过预设的显示界面进行显示,供用户确定标识是否为办理用户业务所需标识。
当办理用户业务的第三方机构所在的机构节点发送给客户端节点的是随机数时,由于随机数比较抽象,用户识别对应的用户数据较为困难,因此客户端节点通过在自身区块列表中得到随机数对应的标识,将标识反馈给用户确定。例如,机构节点发送的随机数对应的标识为身份信息,则用户能容易确定当前办理的业务是否需要提供身份信息。
步骤S302,返回错误提示:接收到用户反馈的标识不是办理用户业务所需标识时,将错误随机数提示返回给第三方机构。
为了保证返回给第三方机构的子秘钥是办理用户业务所需的秘钥,客户端节点接收用户反馈的信息,例如,在显示界面设置是或否等触发按键,客户端节点若接收到否对应的触发信息时,认为标识不是办理用户业务所需标识,此时不进行再生成子秘钥过程,而是将错误随机数提示返回给第三方机构,告知第三方机构提供的随机数是错误的。
步骤S303,共享数据:否则,通过根秘钥和随机数再次生成一个对称加密的子秘钥,并将子秘钥返回给第三方机构,第三方机构通过随机数在区块链系统中获取密文,采用子密钥对密文进行解密,得到明文。
客户端节点若接收到是对应的触发信息时,认为标识是办理用户业务所需标识,此时客户端节点自动再生成子秘钥,将子秘钥共享给第三方机构,由于密文被保存在区块链系统中,因此客户端无需再发送密文,第三方机构通过随机数获取密文,采用共享的子秘钥解密即可。由于客户端节点无需保存密文,减轻了客户端节点的存储压力。
本实施例通过随机数对应的标识来判断是否是用户办理的业务,有效避免第三方机构获取用户的其他子秘钥后,得到其他私密信息的问题。
在一个实施例中,还包括授权查看数据:获取用户发送的授权请求和第三方机构信息,将区块列表中所有的标识通过预设的显示界面进行显示,供用户查看和选择要授权的标识;获取用户反馈的标识,从区块列表中获取标识对应的随机数,通过根秘钥和随机数再次生成子秘钥;将子秘钥和标识发送给第三方机构,第三方机构通过标识在区块链系统中获取密文,采用子密钥对密文进行解密,得到明文。
本实施例用于用户主动将用户数据共享给第三方机构时,用户可以通过信息输入界面输入第三方机构信息,客户端节点接收到用户的授权请求后,为了让用户更方便的确定需要共享的用户数据,客户端节点将所有存储的标识通过显示界面进行显示,供用户选择。客户端节点确定标识后,根据标识与随机数的一一对应关系,得到随机数,自动通过根秘钥和随机数再次生成子秘钥,发给用户授权的第三方机构,供第三方机构从区块链系统中下载密文进行解密。
本发明基于区块链的用户数据管理方法,通过预设的根秘钥和随机产生的随机数共同生成子秘钥,对用户数据进行加密,每次加密的子秘钥都是随机的,其他人员即使知道根秘钥,也无法对密文进行解密。由于密文保存在区块链系统上,第三方机构从区块链系统上获取密文后,只有用户提供密文对应的子秘钥给第三方机构后,才能解密,实现用户自己掌握和管理用户数据的目的。
在一个实施例中,提出了一种基于区块链的用户数据管理装置,如图5所示,包括如下模块:
生成密文模块,用于获取用户输入的用户数据,调用预设的随机数发生器生成一随机数,通过预设的根秘钥和所述随机数生成一个对称加密的子秘钥,采用所述子秘钥对所述用户数据进行加密,生成密文;
上链模块,用于将所述密文和所述随机数生成数据区块,将所述数据区块在区块链系统中上链,形成新的区块链;
共享秘钥模块,用于接收办理用户业务的第三方机构发送的共享秘钥请求,所述共享秘钥请求中包含有所述随机数,从所述共享秘钥请求中获取所述随机数,通过所述根秘钥和所述随机数再次生成一个对称加密的所述子秘钥,并将所述子秘钥返回给所述第三方机构。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中基于区块链的用户数据管理方法中的步骤。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例中基于区块链的用户数据管理方法中的步骤。其中,存储介质可以为非易失性存储介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于区块链的用户数据管理方法,其特征在于,包括:
获取用户输入的用户数据,调用预设的随机数发生器生成一随机数,通过预设的根秘钥和所述随机数生成一个对称加密的子秘钥,采用所述子秘钥对所述用户数据进行加密,生成密文;
将所述密文和所述随机数生成数据区块,将所述数据区块在区块链系统中上链,形成新的区块链;
接收办理用户业务的第三方机构发送的共享秘钥请求,所述共享秘钥请求中包含有所述随机数,从所述共享秘钥请求中获取所述随机数,通过所述根秘钥和所述随机数再次生成一个对称加密的所述子秘钥,并将所述子秘钥返回给所述第三方机构。
2.根据权利要求1所述的基于区块链的用户数据管理方法,其特征在于,所述调用预设的随机数发生器生成一随机数,包括:
在存储介质中预设random()函数,通过调用所述random()函数生成所述随机数。
3.根据权利要求1所述的基于区块链的用户数据管理方法,其特征在于,所述通过预设的根秘钥和所述随机数生成一个对称加密的子秘钥,包括:
调用预设的秘钥生成工具,设置加密算法的名称;
将随机数赋值于所述秘钥生成工具,将所述根秘钥设置为所述秘钥生成工具的口令;
通过所述秘钥生成工具生成一个对称加密的子秘钥。
4.根据权利要求1所述的基于区块链的用户数据管理方法,其特征在于,所述将所述密文和所述随机数生成数据区块,将所述数据区块在区块链系统中上链,形成新的区块链,包括:
获取用户输入的标识,所述标识是所述密文和所述随机数对应的唯一标记;
建立数据区块,将所述密文记录到所述数据区块的区块体中,将所述随机数和所述标识记录到所述数据区块的区块头中;
根据所述区块链系统的链式结构,将所述数据区块在所述区块链系统中上链,形成新的区块链。
5.根据权利要求4所述的基于区块链的用户数据管理方法,其特征在于,
所述将所述密文和所述随机数生成数据区块,将所述数据区块在区块链系统中上链,形成新的区块链后,还包括:
将上链的所述数据区块对应的哈希值、所述随机数和对应的标识记录在预设的区块列表中;
将上链的所述数据区块广播给所述区块链系统中的其他节点,所述其他节点接收到广播后将所述哈希值、所述随机数和对应的标识记录至各自节点预设的区块列表中。
6.根据权利要求5所述的基于区块链的用户数据管理方法,其特征在于,所述从所述共享秘钥请求中获取所述随机数,通过所述根秘钥和所述随机数再次生成一个对称加密的所述子秘钥,并将所述子秘钥返回给所述第三方机构,还包括:
在所述区块列表中查找与所述随机数对应的标识,将所述标识通过预设的显示界面进行显示,供用户确定所述标识是否为办理用户业务所需标识;
接收到用户反馈的所述标识不是办理用户业务所需标识时,将错误随机数提示返回给所述第三方机构;
否则,通过所述根秘钥和所述随机数再次生成一个对称加密的所述子秘钥,并将所述子秘钥返回给所述第三方机构,所述第三方机构通过所述随机数在区块链系统中获取密文,采用子密钥对密文进行解密,得到明文。
7.根据权利要求5所述的基于区块链的用户数据管理方法,其特征在于,还包括授权查看数据:
获取用户发送的授权请求和第三方机构信息,将所述区块列表中所有的标识通过预设的显示界面进行显示,供用户查看和选择要授权的标识;
获取用户反馈的标识,从所述区块列表中获取所述标识对应的随机数,通过所述根秘钥和所述随机数再次生成所述子秘钥;
将所述子秘钥和所述标识发送给所述第三方机构,所述第三方机构通过所述标识在区块链系统中获取密文,采用子密钥对密文进行解密,得到明文。
8.一种基于区块链的用户数据管理装置,其特征在于,包括:
生成密文模块,用于获取用户输入的用户数据,调用预设的随机数发生器生成一随机数,通过预设的根秘钥和所述随机数生成一个对称加密的子秘钥,采用所述子秘钥对所述用户数据进行加密,生成密文;
上链模块,用于将所述密文和所述随机数生成数据区块,将所述数据区块在区块链系统中上链,形成新的区块链;
共享秘钥模块,用于接收办理用户业务的第三方机构发送的共享秘钥请求,所述共享秘钥请求中包含有所述随机数,从所述共享秘钥请求中获取所述随机数,通过所述根秘钥和所述随机数再次生成一个对称加密的所述子秘钥,并将所述子秘钥返回给所述第三方机构。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述基于区块链的用户数据管理方法的步骤。
10.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述基于区块链的用户数据管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811207004.1A CN109543443A (zh) | 2018-10-17 | 2018-10-17 | 基于区块链的用户数据管理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811207004.1A CN109543443A (zh) | 2018-10-17 | 2018-10-17 | 基于区块链的用户数据管理方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109543443A true CN109543443A (zh) | 2019-03-29 |
Family
ID=65843905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811207004.1A Pending CN109543443A (zh) | 2018-10-17 | 2018-10-17 | 基于区块链的用户数据管理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109543443A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263544A (zh) * | 2019-05-20 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 结合交易类型和判断条件的收据存储方法和节点 |
CN111031041A (zh) * | 2019-12-13 | 2020-04-17 | 山东众阳健康科技集团有限公司 | 一种基于区块链的数据上链存储方法、系统、介质及设备 |
CN111177699A (zh) * | 2019-12-23 | 2020-05-19 | 恒大新能源汽车科技(广东)有限公司 | 一种数据提取方法、秘钥生成方法、解锁方法及装置 |
CN111552935A (zh) * | 2020-04-22 | 2020-08-18 | 中国银联股份有限公司 | 一种区块链数据授权访问方法及装置 |
CN111865587A (zh) * | 2020-08-07 | 2020-10-30 | 腾讯科技(深圳)有限公司 | 数据处理方法、区块链节点设备、电子设备及计算机程序 |
CN112133386A (zh) * | 2020-09-29 | 2020-12-25 | 深圳壹账通智能科技有限公司 | 一种基于区块链的信息处理方法、装置、设备及介质 |
CN112927080A (zh) * | 2021-03-05 | 2021-06-08 | 广东电网有限责任公司 | 基于区块链技术的电力行业多方信息共享方法 |
CN113098860A (zh) * | 2021-03-30 | 2021-07-09 | 三一汽车起重机械有限公司 | 一种can总线加密方法、装置、工程机械和存储介质 |
CN113221146A (zh) * | 2021-05-26 | 2021-08-06 | 中国人民银行数字货币研究所 | 区块链节点间数据传输的方法和装置 |
CN114510737A (zh) * | 2022-04-21 | 2022-05-17 | 浙江数秦科技有限公司 | 一种基于区块链的经营数据限时开放系统 |
CN116992495A (zh) * | 2023-09-27 | 2023-11-03 | 江铃汽车股份有限公司 | 办公室文件加密存储方法、系统、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080260147A1 (en) * | 2007-04-17 | 2008-10-23 | Samsung Electronics Co., Ltd. | Method and apparatus for encrypting message for maintaining message integrity, and method and apparatus for decrypting message for maintaining message integrity |
CN108063756A (zh) * | 2017-11-21 | 2018-05-22 | 阿里巴巴集团控股有限公司 | 一种密钥管理方法、装置及设备 |
CN108366057A (zh) * | 2018-02-06 | 2018-08-03 | 武汉斗鱼网络科技有限公司 | 一种数据处理方法、客户端及电子设备 |
CN108377189A (zh) * | 2018-05-09 | 2018-08-07 | 深圳壹账通智能科技有限公司 | 区块链上用户通信加密方法、装置、终端设备及存储介质 |
-
2018
- 2018-10-17 CN CN201811207004.1A patent/CN109543443A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080260147A1 (en) * | 2007-04-17 | 2008-10-23 | Samsung Electronics Co., Ltd. | Method and apparatus for encrypting message for maintaining message integrity, and method and apparatus for decrypting message for maintaining message integrity |
CN108063756A (zh) * | 2017-11-21 | 2018-05-22 | 阿里巴巴集团控股有限公司 | 一种密钥管理方法、装置及设备 |
CN108366057A (zh) * | 2018-02-06 | 2018-08-03 | 武汉斗鱼网络科技有限公司 | 一种数据处理方法、客户端及电子设备 |
CN108377189A (zh) * | 2018-05-09 | 2018-08-07 | 深圳壹账通智能科技有限公司 | 区块链上用户通信加密方法、装置、终端设备及存储介质 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263544A (zh) * | 2019-05-20 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 结合交易类型和判断条件的收据存储方法和节点 |
CN111031041A (zh) * | 2019-12-13 | 2020-04-17 | 山东众阳健康科技集团有限公司 | 一种基于区块链的数据上链存储方法、系统、介质及设备 |
CN111177699A (zh) * | 2019-12-23 | 2020-05-19 | 恒大新能源汽车科技(广东)有限公司 | 一种数据提取方法、秘钥生成方法、解锁方法及装置 |
CN111177699B (zh) * | 2019-12-23 | 2022-07-08 | 恒大恒驰新能源汽车科技(广东)有限公司 | 一种数据提取方法、秘钥生成方法、解锁方法及装置 |
WO2021212928A1 (zh) * | 2020-04-22 | 2021-10-28 | 中国银联股份有限公司 | 一种区块链数据授权访问方法及装置、设备 |
CN111552935A (zh) * | 2020-04-22 | 2020-08-18 | 中国银联股份有限公司 | 一种区块链数据授权访问方法及装置 |
CN111552935B (zh) * | 2020-04-22 | 2023-09-29 | 中国银联股份有限公司 | 一种区块链数据授权访问方法及装置 |
TWI775372B (zh) * | 2020-04-22 | 2022-08-21 | 大陸商中國銀聯股份有限公司 | 一種區塊鏈資料授權存取方法及裝置、設備 |
CN111865587A (zh) * | 2020-08-07 | 2020-10-30 | 腾讯科技(深圳)有限公司 | 数据处理方法、区块链节点设备、电子设备及计算机程序 |
CN112133386A (zh) * | 2020-09-29 | 2020-12-25 | 深圳壹账通智能科技有限公司 | 一种基于区块链的信息处理方法、装置、设备及介质 |
CN112927080A (zh) * | 2021-03-05 | 2021-06-08 | 广东电网有限责任公司 | 基于区块链技术的电力行业多方信息共享方法 |
CN113098860A (zh) * | 2021-03-30 | 2021-07-09 | 三一汽车起重机械有限公司 | 一种can总线加密方法、装置、工程机械和存储介质 |
CN113221146A (zh) * | 2021-05-26 | 2021-08-06 | 中国人民银行数字货币研究所 | 区块链节点间数据传输的方法和装置 |
CN113221146B (zh) * | 2021-05-26 | 2023-11-03 | 中国人民银行数字货币研究所 | 区块链节点间数据传输的方法和装置 |
CN114510737A (zh) * | 2022-04-21 | 2022-05-17 | 浙江数秦科技有限公司 | 一种基于区块链的经营数据限时开放系统 |
CN116992495A (zh) * | 2023-09-27 | 2023-11-03 | 江铃汽车股份有限公司 | 办公室文件加密存储方法、系统、存储介质及电子设备 |
CN116992495B (zh) * | 2023-09-27 | 2024-02-27 | 江铃汽车股份有限公司 | 办公室文件加密存储方法、系统、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109543443A (zh) | 基于区块链的用户数据管理方法、装置、设备和存储介质 | |
CN109587132B (zh) | 一种基于联盟链的数据传递方法及装置 | |
CN108352015B (zh) | 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移 | |
CN108632292B (zh) | 基于联盟链的数据共享方法和系统 | |
CN106104562B (zh) | 机密数据安全储存和恢复系统及方法 | |
CN108985099B (zh) | 一种基于公共密钥池的代理云存储安全控制方法和系统 | |
CN109145612B (zh) | 基于区块链实现防数据篡改、用户共谋的云数据共享方法 | |
CN1939028B (zh) | 从多个设备存取网络存储器上的保护数据 | |
CN100536393C (zh) | 一种基于秘密共享密码机制的用户管理方法 | |
CN110096901B (zh) | 电子合同数据加密存储方法及签约客户端 | |
US20030081774A1 (en) | Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure | |
CN108833385A (zh) | 基于联盟链加密的用户数据匿名共享方法 | |
CN104506483A (zh) | 一种信息加密解密、管理密钥的方法、终端及网络服务器 | |
CN105103488A (zh) | 借助相关联的数据的策略施行 | |
CN109543434B (zh) | 区块链信息加密方法、解密方法、存储方法及装置 | |
JP2017022773A (ja) | 暗号化/復号化キーを生成する方法 | |
CN109617677A (zh) | 基于对称加密的秘钥丢失找回方法及相关设备 | |
US20150256336A1 (en) | End-To-End Encryption Method for Digital Data Sharing Through a Third Party | |
US20210144002A1 (en) | Secondary Channel Authentication of Public Keys | |
CN108881189A (zh) | 基于联盟链的用户数据匿名共享系统 | |
CN101325483B (zh) | 对称密钥更新方法和对称密钥更新装置 | |
CN115314321B (zh) | 基于区块链无需安全通道的可搜索加密方法 | |
CN113239403A (zh) | 一种数据共享方法及装置 | |
EP4300874A1 (en) | Secure file sharing method and system based on domestic cryptographic algorithm | |
CN112382376A (zh) | 基于区块链的医疗器械管理追溯系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |