CN109492415A - 一种基于敏感数字的安全存储方法及系统 - Google Patents
一种基于敏感数字的安全存储方法及系统 Download PDFInfo
- Publication number
- CN109492415A CN109492415A CN201811321737.8A CN201811321737A CN109492415A CN 109492415 A CN109492415 A CN 109492415A CN 201811321737 A CN201811321737 A CN 201811321737A CN 109492415 A CN109492415 A CN 109492415A
- Authority
- CN
- China
- Prior art keywords
- data
- encryption
- ciphertext
- column
- decryption
- 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/602—Providing cryptographic facilities or services
-
- 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)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种基于敏感数字的安全存储方法及系统,属于数据处理领域。本发明的方法包括如下步骤:获取明文数据,通过加密函数对明文数据进行加密;将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;对密文数据进行运算,得到运算后的加密数据。本发明的有益效果为:实现对数据库里的数据进行加密,加密后依然可进行运算,运算结果也是加密数据,大大增加敏感数字存储的安全性。
Description
技术领域
本发明涉及数字加密技术,尤其涉及一种基于敏感数字的安全存储方法及系统。
背景技术
现有的技术对能对敏感数字进行加密,在软件可以隐藏敏感数字。
缺陷:对数字的加密表现在软件层面,在数据库里依然能看到数字明文;数字加密后的密文不能进行运算,运算过程能够看到数字明文,敏感数字的安全性不能保证。
发明内容
为解决现有技术中的问题,本发明提供一种基于敏感数字的安全存储方法及系统。
本发明基于敏感数字的安全存储方法包括如下步骤:
S1:获取明文数据,通过加密函数对明文数据进行加密;
S2:将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;
S3:对密文数据进行运算,得到运算后的加密数据。
本发明作进一步改进,还包括解密步骤:调取数据库中的密文数据,并通过解密函数对密文数据进行解密,得到明文数据,供用户使用。
本发明作进一步改进,在步骤S1中,定义一个数组key,保存指定的数字,作为加密类的密钥,该密钥供加密和解密时共同使用;并定义一个数组iv,保存指定的数字,作为加密类的初始化向量,所述初始化向量从所述数组iv中随机选择。
本发明作进一步改进,所述加密函数的处理方法为:加密函数调用加密的转换运算将要加密的数字原文转变为密文字符,再将密文字符返回,其中,所述加密函数的参数为decimal类型的待加密数值,返回值为string类型的密文字符;解密的处理过程为:用解密的转换运算将要进行解密的密文字符转变为解密数值,再将解密数值返回,其中,解密参数为string类型的密文字符,返回值为decimal类型的解密数值。
本发明作进一步改进,所述加密的转换运算是通过des的CreateEncryptor方法生成;所述解密的转换运算通过des的CreateDecryptor方法生成。
本发明作进一步改进,步骤S2中,数据库的存储方法为:在数据库中设置数据表的列:C1和C2,如果C2的列名等于C1的列名加指定的后缀,则C2为C1的加密列,保存C1列数据加密后的密文,C1列进行加密后数据存到C2列,C1的数据清空。
本发明作进一步改进,步骤S3中,将加解密方法引入数据库,在整个运算过程中,不会暴露算法细节,运算的处理过程为:先调用解密函数对密文字符解密,再按照业务逻辑对数字进行解密运算,运算后的数据经过加密函数加密为密文字符存储。
本发明还提供了一种实现所述方法的系统,包括加密模块:用于获取明文数据,通过加密函数对明文数据进行加密;存储模块:用于将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;运算模块:用于对密文数据进行运算,得到运算后的加密数据。
本发明作进一步改进,还包括解密模块:用于在客户端调取数据库中的密文数据,并通过解密函数对密文数据进行解密,得到明文数据,供用户使用。
本发明作进一步改进,还包括定义模块:用于定义一个数组key,保存指定的数字,作为加密类的密钥,该密钥供加密和解密时共同使用;并定义一个数组iv,保存指定的数字,作为加密类的初始化向量,所述初始化向量从所述数组iv中随机选择。
与现有技术相比,本发明的有益效果是:实现对数据库里的数据进行加密,加密后依然可进行运算,运算结果也是加密数据,保证了敏感数字存储的安全性。
附图说明
图1为本发明方法流程图;
图2为本发明详细流程图。
具体实施方式
下面结合附图和实施例对本发明做进一步详细说明。
如图1和图2所示,本发明本发明基于敏感数字的安全存储方法包括如下步骤:
S1:获取明文数据,通过加密函数对明文数据进行加密;
S2:将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;
S3:对密文数据进行运算,得到运算后的加密数据。
还包括解密步骤:调取数据库中的密文数据,并通过解密函数对密文数据进行解密,得到明文数据,供用户使用。
在步骤S3中,将加解密方法引入数据库,在整个运算过程中,不会暴露算法细节,运算的处理过程为:先调用解密函数对密文字符解密,再按照业务逻辑对数字进行解密运算,运算后的数据经过加密函数加密为密文字符存储。
本发明在软件中使用加密算法将敏感数字加密,同时使用用于自定的函数将加密算法引入到MS SQL Server数据库,支持客户按业务逻辑对加密数字进行四则运算,而不用暴露算法细节,在显示敏感数字前进行加解密操作,并将最终运算结果也以密文形式存储。实现对数据库里的数据进行加密,加密后依然可进行运算,运算结果也是加密数据,保证了敏感数字存储的安全性。
本例的具体实现过程为:
1、本例采用对称加密方法进行加解密操作,设置一个对称加密类CoreCryptor,应用命名空间System.Security.Cryptography。该加密类包括以下操作:
(1)定义一个数组key,保存指定的数字,作为该加密类的密钥。该密钥供加密和解密时共同使用。
(2)定义一个数组iv,保存指定的数字,作为该加密类的iv(初始化向量)。该iv供加密和解密时共同使用。在加解密时,随机选择数组中的数字作为初始化向量,并非固定数字,被破解的难度大大提升,增加了算法的安全性。
(3)定义一个ICryptoTransform(密码变换)类型的用于加密的基本加密转换运算ENT:初始化一个RC2CryptoServiceProvider类的新实例des(数据加密算法),des的Key和iv分别等于(1)和(2)里的数组key、数组iv。然后用des的CreateEncryptor(加密者)方法生成一个基本加密运算,并且返回到ENT。
(4)定义一个ICryptoTransform类型的用于解密的基本解密转换运算DET:初始化一个RC2CryptoServiceProvider的新实例des,des的Key和iv分别等于(1)和(2)里的数组key、数组iv。然后用des的CreateDecryptor方法生成一个基本解密运算,并且返回到DET。
(5)设置加密函数Encrypt,该加密函数参数为decimal(十进制)类型的加密数值(需要加密的数值),返回值为string(字符串)类型的密文字符(加密数值加密后得到的字符串)。该函数调用(3)中的用于加密的转换运算ENT将要加密的数字原文转变为密文字符,再将密文字符返回。
(6)设置解密函数Decyrpt,该函数参数为string类型的密文字符(需要进行解密的字符串),返回值为decimal类型的解密数值(密文字符解密后得到的原文数值)。该函数调用(4)中的用于解密的转换运算DET将要进行解密的密文字符转变为解密数值,再将解密数值返回。
2、本例将加解密方法引入数据库,并对敏感数字进行安全存储,作为本发明的一个实施例,数据库的存储方法为:在数据库中设置数据表的列:C1和C2,如果C2的列名等于C1的列名加指定的后缀,则C2为C1的加密列,保存C1列数据加密后的密文,C1列进行加密后数据存到C2列,C1的数据清空。
本例设置一个类DataCryptor,提供对数据集、表的数据加密服务。应用命名空间System.Security.Cryptography。该类处理过程包括以下步骤:
(1)定义一个字符串变量EndStr,该字符串用于保存加密字段的后缀。即:有表的列C1和C2,若C2列名=C1列名+EndStr,C2列为C1列的加密列,C2列保存C1列加密的数据密文。
(2)设置函数GetColumns,用于获取表的加密列,该函数返回值为List<KeyValuePair<string,string>>类型的键值对列表,参数为DataTable类型的表。先声明一个List<KeyValuePair<string,string>>类型的列表List。循环参数表里的列,判断表里是否存在两列如上面所述的C1和C2列(例:C2列名=C1列名+EndStr,C2列为C1列的加密列),若存在,则把C1的列名作为键,C2的列名作为值,添加到列表List里。参数表里的列都循环过后,返回列表List的值。
(3)设置函数Encrypt,用于获取表的指定列的加密数据,有3个部分:
<1>设置第一个函数Encrypt,用于返回行的指定列的加密数据,不修改原数据。该函数返回值为string类型,参数1为DataRow类型(要获取列的加密数据的数据行row),参数2为string类型(要获取加密数据的列的字段名columnName)。定义一个object类型的变量value,value等于参数列row的字段columnName的值。调用1.对称加密类CoreCryptor的方法Encrypt把变量value转换为一个加密的字符串,将该加密的字符串返回。
<2>设置第二个函数Encrypt,用于加密指定的数据表。该函数返回值为空。参数1为DataTable类型(要进行加密的数据表table)。定义List<KeyValuePair<string,string>>类型变量list。将参数table作为参数调用(2)中的函数GetColumns获取表的加密列,返回值赋给list。循环参数table的行,循环list的键值对,调用<1>的函数Encrypt,将键值对中的键列(原列)值加密为密文数据保存到键值对中的值列(加密列),将键列(原列)的数据清空。
<3>设置第三个函数Encrypt,用于加密指定的数据集。该函数返回值为空。参数1为DataSet类型(要进行加密的数据集dataSet)。循环获取dataSet中的数据表,调用<2>中的函数Encrypt对数据集中的每张数据表进行加密。
(4)设置函数Decrypt,用于返回表的指定加密列的解密数据,与第(3)部分对应,有3个重载。
<1>设置第一个函数Decrypt,用于返回行的指定加密列的解密数据,不修改原数据。该函数返回值为decimal类型,参数1为DataRow类型(要获取加密列的解密数据的数据行row),参数2为string类型(要获取解密数据的加密列的字段名columnName)。定义一个string类型的变量value,value等于参数列row的字段columnName的值。调用1.对称加密类CoreCryptor的方法Decrypt把变量value转换为一个解密的数据,将该解密的数据返回。
<2>设置第二个函数Decrypt,用于解密指定的数据表。该函数返回值为空。参数1为DataTable类型(要进行解密的数据表table)。定义List<KeyValuePair<string,string>>类型变量list。将参数table作为参数调用(2)中的函数GetColumns获取表的加密列,返回值赋给list。循环参数table的行,循环list的键值对,调用<1>的函数Decrypt,将键值对中的值列(加密列)值解密为原文数据保存到键值对中的键列(原列)。
<3>设置第三个函数Decrypt,用于解密指定的数据集。该函数返回值为空。参数1为DataSet类型(要进行解密的数据集dataSet)。循环获取dataSet中的数据表,调用<2>中的函数Decrypt对数据集中的每张数据表进行解密。
3、在数据库中进行加密运算,并以密文形式存储。具体实现方法为:
设置一个用于加密数字进行计算的类,该类主要是将要进行计算的加密数据通过调用2.(4)中的解密方法Decrypt转变为数字明文,数字明文进行计算后得到计算结果,再调用2.(3)中的加密方法Encrypt把计算结果转变为数字密文。
本发明还提供了一种实现所述方法的系统,包括加密模块:用于获取明文数据,通过加密函数对明文数据进行加密;存储模块:用于将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;运算模块:用于对密文数据进行运算,得到运算后的加密数据。
本发明作进一步改进,还包括解密模块:用于在客户端调取数据库中的密文数据,并通过解密函数对密文数据进行解密,得到明文数据,供用户使用。
以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。
Claims (10)
1.一种基于敏感数字的安全存储方法,其特征在于,包括如下步骤:
S1:获取明文数据,通过加密函数对明文数据进行加密;
S2:将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;
S3:对密文数据进行运算,得到运算后的加密数据。
2.根据权利要求1所述的基于敏感数字的安全存储方法,其特征在于:还包括解密步骤:调取数据库中的密文数据,并通过解密函数对密文数据进行解密,得到明文数据,供用户使用。
3.根据权利要求2所述的基于敏感数字的安全存储方法,其特征在于:在步骤S1中,定义一个数组key,保存指定的数字,作为加密类的密钥,该密钥供加密和解密时共同使用;并定义一个数组iv,保存指定的数字,作为加密类的初始化向量,所述初始化向量从所述数组iv中随机选择。
4.根据权利要求3所述的基于敏感数字的安全存储方法,其特征在于:所述加密函数的处理方法为:加密函数调用加密的转换运算将要加密的数字原文转变为密文字符,再将密文字符返回,其中,所述加密函数的参数为decimal类型的待加密数值,返回值为string类型的密文字符;解密的处理过程为:用解密的转换运算将要进行解密的密文字符转变为解密数值,再将解密数值返回,其中,解密参数为string类型的密文字符,返回值为decimal类型的解密数值。
5.根据权利要求4所述的基于敏感数字的安全存储方法,其特征在于:所述加密的转换运算是通过des的CreateEncryptor方法生成;所述解密的转换运算通过des的CreateDecryptor方法生成。
6.根据权利要求1-5任一项所述的基于敏感数字的安全存储方法,其特征在于:步骤S2中,数据库的存储方法为:在数据库中设置数据表的列:C1和C2,如果C2的列名等于C1的列名加指定的后缀,则C2为C1的加密列,保存C1列数据加密后的密文,C1列进行加密后数据存到C2列,C1的数据清空。
7.根据权利要求1-5任一项所述的基于敏感数字的安全存储方法,其特征在于:步骤S3中,将加解密方法引入数据库,在整个运算过程中,不会暴露算法细节,运算的处理过程为:先调用解密函数对密文字符解密,再按照业务逻辑对数字进行解密运算,运算后的数据经过加密函数加密为密文字符存储。
8.一种实现权利要求1-7任一项所述的基于敏感数字的安全存储方法的系统,其特征在于包括:加密模块:用于获取明文数据,通过加密函数对明文数据进行加密;存储模块:用于将加密后的数据存储在数据库的密文数据列,同时删除明文数据列;运算模块:用于对密文数据进行运算,得到运算后的加密数据。
9.根据权利要求8所述的系统,其特征在于:还包括解密模块:用于在客户端调取数据库中的密文数据,并通过解密函数对密文数据进行解密,得到明文数据,供用户使用。
10.根据权利要求9所述的系统,其特征在于:还包括定义模块:用于定义一个数组key,保存指定的数字,作为加密类的密钥,该密钥供加密和解密时共同使用;并定义一个数组iv,保存指定的数字,作为加密类的初始化向量,所述初始化向量从所述数组iv中随机选择。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811321737.8A CN109492415A (zh) | 2018-11-06 | 2018-11-06 | 一种基于敏感数字的安全存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811321737.8A CN109492415A (zh) | 2018-11-06 | 2018-11-06 | 一种基于敏感数字的安全存储方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109492415A true CN109492415A (zh) | 2019-03-19 |
Family
ID=65695296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811321737.8A Pending CN109492415A (zh) | 2018-11-06 | 2018-11-06 | 一种基于敏感数字的安全存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109492415A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130246813A1 (en) * | 2011-11-11 | 2013-09-19 | Nec Corporation | Database encryption system, method, and program |
CN105787387A (zh) * | 2016-03-07 | 2016-07-20 | 南京邮电大学 | 一种数据库加密方法及该加密数据库查询方法 |
CN106022143A (zh) * | 2016-05-10 | 2016-10-12 | 武汉华工安鼎信息技术有限责任公司 | 一种数据库密级标志安全网关操作的方法、装置及系统 |
CN107168998A (zh) * | 2017-03-30 | 2017-09-15 | 广东工业大学 | 一种基于保留格式的数据库透明加密方法 |
US20190384931A1 (en) * | 2017-02-22 | 2019-12-19 | Kindite Ltd. | Encrypting data records and processing encrypted records without exposing plaintext |
-
2018
- 2018-11-06 CN CN201811321737.8A patent/CN109492415A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130246813A1 (en) * | 2011-11-11 | 2013-09-19 | Nec Corporation | Database encryption system, method, and program |
CN105787387A (zh) * | 2016-03-07 | 2016-07-20 | 南京邮电大学 | 一种数据库加密方法及该加密数据库查询方法 |
CN106022143A (zh) * | 2016-05-10 | 2016-10-12 | 武汉华工安鼎信息技术有限责任公司 | 一种数据库密级标志安全网关操作的方法、装置及系统 |
US20190384931A1 (en) * | 2017-02-22 | 2019-12-19 | Kindite Ltd. | Encrypting data records and processing encrypted records without exposing plaintext |
CN107168998A (zh) * | 2017-03-30 | 2017-09-15 | 广东工业大学 | 一种基于保留格式的数据库透明加密方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104486315B (zh) | 一种基于内容属性的可撤销密钥外包解密方法 | |
US10129028B2 (en) | Relational encryption for password verification | |
Kim et al. | Efficient privacy-preserving matrix factorization via fully homomorphic encryption | |
Wu et al. | Secure and efficient outsourced k-means clustering using fully homomorphic encryption with ciphertext packing technique | |
CN108154038B (zh) | 数据处理方法及装置 | |
CN110110163A (zh) | 安全子字符串搜索以过滤加密数据 | |
CN112380557B (zh) | 一种关系型数据库加密方法及该加密数据库查询方法 | |
CN104363215A (zh) | 一种基于属性的加密方法和系统 | |
CN109361644B (zh) | 一种支持快速搜索和解密的模糊属性基加密方法 | |
US8769302B2 (en) | Encrypting data and characterization data that describes valid contents of a column | |
JP7061042B2 (ja) | 暗号化データベースに対する解析を支援するシステムおよびアーキテクチャ | |
US11716191B2 (en) | Method, apparatus, and computer-readable medium for searching polymorphically encrypted data | |
Feng et al. | Privacy-preserving computation in cyber-physical-social systems: A survey of the state-of-the-art and perspectives | |
CN110263570B (zh) | 一种实现高效相似性查询和访问控制的基因数据脱敏方法 | |
CN112100649B (zh) | 支持布尔访问控制策略的多关键字可搜索加密方法及系统 | |
CN109934001A (zh) | 一种基于正态云模型的数据加密方法 | |
CN102222188A (zh) | 一种信息系统用户密码的生成方法 | |
CN108170753A (zh) | 一种共有云中Key-Value数据库加密与安全查询的方法 | |
Tong et al. | Privacy-preserving Boolean range query with temporal access control in mobile computing | |
Xu et al. | Applications of cryptography in database: a review | |
JP6971926B2 (ja) | 暗号化データベースに関する解析のためのシステムおよびアーキテクチャ | |
Li et al. | Efficient and secure outsourcing of differentially private data publication | |
Li et al. | A novel colour image encryption based on fractional order Lorenz system | |
CN109492415A (zh) | 一种基于敏感数字的安全存储方法及系统 | |
CN109409111A (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 |