CN104899521B - 18位身份证号码漂白和反向漂白方法 - Google Patents
18位身份证号码漂白和反向漂白方法 Download PDFInfo
- Publication number
- CN104899521B CN104899521B CN201510310488.2A CN201510310488A CN104899521B CN 104899521 B CN104899521 B CN 104899521B CN 201510310488 A CN201510310488 A CN 201510310488A CN 104899521 B CN104899521 B CN 104899521B
- Authority
- CN
- China
- Prior art keywords
- bleaching
- code
- new
- card
- administrative division
- 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.)
- Active
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/6227—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 where protection concerns the structure of data, e.g. records, types, queries
-
- 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
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及18位身份证号码漂白和反向漂白方法。漂白方法包括:步骤100、初始化AddrCodeGroups个列表;步骤110、计算行政区划代码x的hashCode;步骤120、计算x对应的列表序号roupIndex;步骤130、将x存入groupIndex对应的列表中;步骤140、输入待漂白身份证号码,计算x的hashCode及groupIndex;步骤150、计算x在groupIndex对应的列表codeList的位置codeInd;步骤160、根据hashCode计算顺序码的orderCodeShift;步骤170、年份编码前两位保持不变,根据新顺序码计算年份编码后两位的YYShift;步骤180、根据新年份编码后两位计算月份编码的MMShift;步骤190、根据新月份编码计算日期编码的DDShift;步骤195、计算新校验码,输出漂白后身份证号码。本发明还提供相应的反向漂白方法。本发明的漂白和反向漂白方法保持数据高仿真度、漂白过程不易被破解。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种18位身份证号码漂白和反向漂白方法。
背景技术
数据漂白是使数据更加安全的一种计算机处理过程,它与数据加密不同,数据加密后是无法正常读取和使用的,必须解密才能使用。而数据漂白是将数据通过一定的算法变成另一种样式,而这种样式是可读的,并且与原数据是同一类的。数据漂白根据漂白的具体需求,根据不同的漂白字段,制定不同的漂白算法,以保证漂白后的数据具有高仿真度,高仿真度是区分数据漂白算法与普通加密算法的重要标志,漂白是一种特殊的加密过程,经过漂白处理后的数据必须要能够保证具备可读性、逻辑关联性和安全性,并且能够通过反向漂白还原成原数据。
数据漂白分为正向漂白和反向漂白。正向漂白是将原始数据经过漂白处理形成漂白后数据的过程。反向漂白是将漂白后的数据经过反向处理还原成原始数据的过程。随着大数据技术的成熟和发展,大数据在商业上的应用越来越广泛,有关大数据的交互、整合、交换、交易的例子也日益增多,必须保障数据中涉及客户和生产的敏感信息不外泄,这些信息包括客户姓名、电话、住址、身份证号码等个人敏感信息,以及柜员类和企业类的敏感信息等。数据漂白常用于由于需要在非生产环境中使用生产数据的场景,例如测试、开发、培训、外包、数据挖掘和研究等,通过数据漂白过程,能够减少数据使用的限制,保障数据中涉及客户和生产的敏感信息不外泄,不侵害用户的个人隐私数据,且具有高仿真度。
根据〖中华人民共和国国家标准GB 11643-1999〗中有关公民身份号码的规定,18位公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
地址码(身份证前六位)表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。如广东省深圳市宝安区的行政区划代码为440306。
生日期码(身份证第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示。例如:2012年01月04日用20120104表示。
顺序码(身份证第十五位到十七位)为同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。
校验码(身份证最后一位)是按照ISO 7064:1983.MOD 11-2校验码算法计算出来的检验码。
为了安全使用18位身份证号码数据,需要针对18位身份证号码设计一种漂白和反向漂白方法。
发明内容
本发明的目的在于提供一种18位身份证号码漂白方法,对18位身份证号码进行漂白,保持数据高仿真度、漂白过程不易被破解。
本发明的另一目的在于提供一种18位身份证号码反向漂白方法,将漂白后的18位身份证号码还原成原始18位身份证号码。
为实现上述目的,本发明提供一种18位身份证号码漂白方法,包括:
步骤100、收集所有的行政区划代码数据,初始化AddrCodeGroups个列表codeList以用于存储行政区划代码;
步骤110、按一定的方式计算行政区划代码x的哈希值hashCode;
步骤120、计算行政区划代码x对应的列表序号groupIndex:groupIndex=mod(hashCode,AddrCodeGroups);
步骤130、将行政区划代码x存入groupIndex对应的列表中;
步骤140、输入待漂白身份证号码,按前述方式计算待漂白身份证号码的行政区划代码x的哈希值hashCode并计算其对应的列表序号groupIndex;
步骤150、计算x在groupIndex对应的列表codeList的位置codeInd;取codeList中mod(codeInd+CodeShift,len)位置上的行政区划代码作为新的行政区划代码,其中len为codeList的长度,CodeShift为预设的偏移量;
步骤160、根据哈希值hashCode按一定的方法计算顺序码的偏移量orderCodeShift;新顺序码newOrderCode=mod(orderCode+orderCodeShift,1000),其中orderCode为旧顺序码;
步骤170、年份编码前两位保持不变,根据新顺序码newOrderCode按一定的方法计算年份编码后两位的偏移量YYShift;新年份编码后两位newYY=mod(YY+YYShift,100),其中YY为旧年份编码后两位;
步骤180、根据新年份编码后两位newYY按一定的方法计算月份编码的偏移量MMShift;新月份编码newMM=(MM+MMShift,12),其中MM为旧月份编码;
步骤190、根据新月份编码newMM按一定的方法计算日期编码的偏移量DDShift,新日期编码newDD=mod(DD+DDShift,maxDay);其中DD为旧日期编码,maxDay为新月份编码newMM对应的月中最大的天数maxDay;
步骤195、计算新的校验码,输出漂白后的身份证号码。
其中,计算行政区划代码x的哈希值hashCode的方法仅以x为变量。
其中,行政区划代码x的哈希值hashCode为x的六位数字之和。
其中,orderCodeShift=groupIndex×13–17。
其中,YYShift=mod(newOrderCode,13)×2–13。
其中,MMShift=mod(newYY,11)–6。
其中,DDShift=newMM–5。
为实现上述目的,本发明还提供了一种18位身份证号码反向漂白方法,包括:
步骤200、收集所有的行政区划代码数据,初始化与漂白时数量相同的AddrCodeGroups个列表codeList以用于存储行政区划代码;
步骤210、按与漂白时相同的方式计算行政区划代码x的哈希值hashCode;
步骤220、计算行政区划代码x对应的列表序号groupIndex:groupIndex=mod(hashCode,AddrCodeGroups);
步骤230、将行政区划代码x存入groupIndex对应的列表中;
步骤240、输入待反向漂白身份证号码,按前述方式计算待反向漂白身份证号码的行政区划代码x的哈希值hashCode并计算其对应的列表序号groupIndex;
步骤250、计算x在groupIndex对应的列表codeList的位置codeInd;取codeList中mod(codeInd–CodeShift,len)位置上的行政区划代码作为新的行政区划代码,其中len为codeList的长度,CodeShift为漂白时使用的偏移量;
步骤260、根据哈希值hashCode按漂白时的方法计算顺序码的偏移量orderCodeShift;新顺序码newOrderCode=mod(orderCode–orderCodeShift,1000),其中orderCode为旧顺序码;
步骤270、年份编码前两位保持不变,根据旧顺序码OrderCode按漂白时的方法计算年份编码后两位的偏移量YYShift;新年份编码后两位newYY=mod(YY–YYShift,100),其中YY为旧年份编码后两位;
步骤280、根据旧年份编码后两位YY按漂白时的方法计算月份编码的偏移量MMShift;新月份编码newMM=(MM–MMShift,12),其中MM为旧月份编码;
步骤290、根据旧月份编码MM按一定的方法计算日期编码的偏移量DDShift,新日期编码newDD=mod(DD–DDShift,maxDay);其中DD为旧日期编码,maxDay为新月份编码newMM对应的月中最大的天数maxDay;
步骤295、计算新的校验码,输出反向漂白后的身份证号码。
其中,计算行政区划代码x的哈希值hashCode的方法仅以x为变量。
其中,行政区划代码x的哈希值hashCode为x的六位数字之和。
综上所述,本发明的18位身份证号码漂白方法能够对18位身份证号码进行漂白,保持数据高仿真度、漂白过程不易被破解,适合于漂白大规模数据;本发明的18位身份证号码反向漂白方法,能够将漂白后的18位身份证号码还原成原始18位身份证号码。
附图说明
图1为本发明18位身份证号码漂白方法的流程图。
具体实施方式
下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其有益效果显而易见。
参见图1,其为本发明18位身份证号码漂白方法的流程图。漂白方法主要包括:
步骤100、收集所有的行政区划代码数据,初始化AddrCodeGroups个列表codeList,用于存储行政区划代码。
收集所有的行政区划代码数据并分组,分组数量AddrCodeGroups事先确定,比如为20。
步骤110、按一定的方式计算行政区划代码x的哈希值hashCode。
对行政区划代码x,按一定的方式计算出一个哈希值hashCode,计算方法不依赖x以外的其他变量。一个可行的哈希值计算方法为x的六位数字之和,如“440306”的哈希值为4+4+0+3+0+6=17。
步骤120、计算行政区划代码x对应的列表序号groupIndex:groupIndex=mod(hashCode,AddrCodeGroups)。
哈希值hashCode对分组数AddrCodeGroups取模,模数为其对应的组数:groupIndex=hashCode%AddrCodeGroups。如“440306”的组数为17%20=17。
步骤130、将行政区划代码x存入groupIndex对应的列表中。
通过上述步骤准备行政区划代码数据,接下来进行身份证号码漂白过程。
步骤140、输入待漂白身份证号码,按前述方式计算待漂白身份证号码的行政区划代码x的哈希值hashCode并计算其对应的列表序号groupIndex。
取身份证号码的前6位行政区划代码x,计算其哈希值hashCode(计算方法需与上面行政区划代码数据整理过程中的计算方法相同),并计算其对应的组数:groupIndex=hashCode%AddrCodeGroups。
步骤150、计算x在groupIndex对应的列表codeList的位置codeInd;取codeList中mod(codeInd+CodeShift,len)位置上的行政区划代码作为新的行政区划代码,其中len为codeList的长度,CodeShift为预设的偏移量。
计算新的行政区划代码(1-6位)。取得groupIndex对应的行政区划代码列表codeList,计算x在codeList的位置codeInd。设置一确定的偏移量CodeShift,如CodeShift=17。取codeList中codeInd+CodeShift位置上的行政区划代码作为新的行政区划代码,如果codeInd+CodeShift大于或等于codeList的长度(len),则取codeInd+CodeShift-len位置上的代码,即从头开始循环计数。
步骤160、根据哈希值hashCode按一定的方法计算顺序码的偏移量orderCodeShift;新顺序码newOrderCode=mod(orderCode+orderCodeShift,1000),其中orderCode为旧顺序码。
计算新的顺序码(15-17位)。根据行政区划代码的哈希值按一定的方法计算顺序码的偏移量,例如为groupIndex×13-17;新的顺序码newOrderCode为旧顺序码orderCode加上此偏移量。如newOrderCode=orderCode+groupIndex×13-17。如果新顺序码newOrderCode小于0,则newOrderCode需加上1000,否则如果大于或等于1000,则需减去1000。
步骤170、年份编码前两位保持不变,根据新顺序码newOrderCode按一定的方法计算年份编码后两位的偏移量YYShift;新年份编码后两位newYY=mod(YY+YYShift,100),其中YY为旧年份编码后两位。
计算新的年份编码(7-10位)。其中第7、8位保持不变(目前可能的值为19和20)。根据新顺序码newOrderCode按一定的方法计算年份编码的偏移量,如为(newOrderCode%13)×2–13;新第9、10位的年份编码newYY为旧编码YY加上此偏移量。如newYY=YY+(newOrderCode%13)×2–13。如果newYY小于0,则newYY需加上100,否则如果大于或等于100,newYY,则需减去100。
步骤180、根据新年份编码后两位newYY按一定的方法计算月份编码的偏移量MMShift;新月份编码newMM=(MM+MMShift,12),其中MM为旧月份编码。
计算新的月份编码(11-12位)。根据新年份编码后两位newYY按一定的方法计算月份编码的偏移量,如为newYY%11-6;新的月份编码newMM为旧月份编码MM加上此偏移量,如:newMM=MM+newYY%11-6;如果newMM小于1,则需加上12,否则如果大于12,则需减去12。
步骤190、根据新月份编码newMM按一定的方法计算日期编码的偏移量DDShift,新日期编码newDD=mod(DD+DDShift,maxDay);其中DD为旧日期编码,maxDay为新月份编码newMM对应的月中最大的天数maxDay。
计算新的日期编码(13-14位)。根据新月份编码newMM按一定的方法计算日期编码的偏移量,如为newMM-5;新的日期编码newDD为旧日期编码DD加上此偏移量,如:newDD=DD+newMM-5;计算新月份newMM对应的月中最大的天数maxDay(如1月最大天数为31,2月闰年最大天数为29,其他年份为28等,其中newYY%4等于0时为闰年),如果newDD小于1,则需加上maxDay,否则如果大于maxDay,则需减去maxDay。
步骤195、计算新的校验码,输出漂白后的身份证号码。
计算新的校验码。新的17位身份证编码计算好后根据ISO 7064:1983.MOD11-2校验码算法计算新的校验码。新的18位身份证号码计算完毕并输出。
本发明的漂白方法对于固定的输入漂白后的输出是确定的,但计算过程中各个编码的改变有较强的随机性,结果有高仿真度且不易被反向破解。漂白后的输出数据具有可用性及易用性,用户可以通过选择需要的函数和参数来定制漂白的过程;而且由于本发明对于固定的输入漂白后的输出是确定的,可以根据需要任意拆分输入数据进行并行处理,适合于漂白大规模数据。
本发明还提供了相应的反向漂白方法,主要包括:
步骤200、收集所有的行政区划代码数据,初始化与漂白时数量相同的AddrCodeGroups个列表codeList,用于存储行政区划代码。
收集所有的行政区划代码数据并分组,分组数量AddrCodeGroups事先确定,比如为20。
步骤210、按与漂白时相同的方式计算行政区划代码x的哈希值hashCode。
对行政区划代码x,按漂白过程中相同方式计算出一个哈希值hashCode。例如为x的六位数字之和,“440306”的哈希值为4+4+0+3+0+6=17。
步骤220、计算行政区划代码x对应的列表序号groupIndex:groupIndex=mod(hashCode,AddrCodeGroups)。
哈希值hashCode对分组数AddrCodeGroups取模,模数为其对应的组数:groupIndex=hashCode%AddrCodeGroups。如“440306”的组数为17%20=17。
步骤230、将行政区划代码x存入groupIndex对应的列表中。
通过上述步骤准备行政区划代码数据,接下来进行身份证号码反向漂白过程。
步骤240、输入待反向漂白身份证号码,按前述方式计算待反向漂白身份证号码的行政区划代码x的哈希值hashCode并计算其对应的列表序号groupIndex。
取身份证号码的前6位行政区划代码x,计算其哈希值hashCode(计算方法需与上面行政区划代码数据整理过程中的计算方法相同),并计算其对应的组数:groupIndex=hashCode%AddrCodeGroups。
步骤250、计算x在groupIndex对应的列表codeList的位置codeInd;取codeList中mod(codeInd–CodeShift,len)位置上的行政区划代码作为新的行政区划代码,其中len为codeList的长度,CodeShift为漂白时使用的偏移量。
计算新的行政区划代码(1-6位)。取得groupIndex对应的行政区划代码列表codeList,计算x在codeList的位置codeInd。取漂白过程中用的偏移量CodeShift,如CodeShift=17。取codeList中codeInd-CodeShift位置上的行政区划代码作为新的行政区划代码,如果codeInd-CodeShift小于0,则位置需加上codeList的长度(len),即取codeInd–CodeShift+len位置上的代码,即从尾部开始循环计数。
步骤260、根据哈希值hashCode按漂白时的方法计算顺序码的偏移量orderCodeShift;新顺序码newOrderCode=mod(orderCode–orderCodeShift,1000),其中orderCode为旧顺序码。
计算新的顺序码(15-17位)。使用漂白过程中的顺序码偏移量计算方法计算顺序码偏移量,如为groupIndex×13-17;新的顺序码newOrderCode为旧顺序码orderCode减去此偏移量,例如newOrderCode=orderCode–(groupIndex×13–17)。如果新顺序码newOrderCode小于0,则newOrderCode需加上1000,否则如果大于或等于1000,则需减去1000。
步骤270、年份编码前两位保持不变,根据旧顺序码OrderCode按漂白时的方法计算年份编码后两位的偏移量YYShift;新年份编码后两位newYY=mod(YY–YYShift,100),其中YY为旧年份编码后两位。
计算新的年份编码(7-10位)。其中第7、8位保持不变(目前可能的值为19和20)。使用漂白过程中的年份编码偏移量计算方法计算年份编码的偏移量,但变量为输入的旧顺序码,如为(orderCode%13)×2–13;新第9、10位的年份编码newYY为旧编码YY减去此偏移量。如newYY=YY–((orderCode%13)×2–13)。如果newYY小于0,则newYY需加上100,否则如果大于或等于100,newYY,则需减去100。
步骤280、根据旧年份编码后两位YY按漂白时的方法计算月份编码的偏移量MMShift;新月份编码newMM=(MM–MMShift,12),其中MM为旧月份编码。
计算新的月份编码(11-12位)。使用漂白过程中的月份编码偏移量计算方法计算月份编码的偏移量,但变量为输入的旧年份编码,如为YY%11-6;新的月份编码newMM为旧月份编码MM减去此偏移量,如:newMM=MM–(YY%11-6);如果newMM小于1,则需加上12,否则如果大于12,则需减去12。
步骤290、根据旧月份编码MM按一定的方法计算日期编码的偏移量DDShift,新日期编码newDD=mod(DD–DDShift,maxDay);其中DD为旧日期编码,maxDay为新月份编码newMM对应的月中最大的天数maxDay。
计算新的日期编码(13-14位)。使用漂白过程中的日期编码偏移量计算方法计算日期编码的偏移量,但变量为输入的旧月份编码,如为MM-5;新的日期编码newDD为旧日期编码DD减去此偏移量,如:newDD=DD–(MM–5);计算新月份newMM对应的月中最大的天数maxDay(如1月最大天数为31,2月闰年最大天数为29,其他年份为28等,其中YY%4等于0时为闰年),如果newDD小于1,则需加上maxDay,否则如果大于maxDay,则需减去maxDay。
步骤295、计算新的校验码,输出反向漂白后的身份证号码。
计算新的校验码。新的17位身份证编码计算好后根据ISO 7064:1983.MOD11-2校验码算法计算新的校验码。所有新的18位编码即组成漂白前的身份证号码并输出。
综上所述,本发明的18位身份证号码漂白方法能够对18位身份证号码进行漂白,保持数据高仿真度、漂白过程不易被破解,适合于漂白大规模数据;本发明的18位身份证号码反向漂白方法,能够将漂白后的18位身份证号码还原成原始18位身份证号码。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种18位身份证号码漂白方法,其特征在于,包括:
步骤100、收集所有的行政区划代码数据,初始化AddrCodeGroups个列表codeList以用于存储行政区划代码;
步骤110、按一定的方式计算行政区划代码x的哈希值hashCode;
步骤120、计算行政区划代码x对应的列表序号groupIndex:groupIndex=mod(hashCode,AddrCodeGroups);
步骤130、将行政区划代码x存入groupIndex对应的列表中;
步骤140、输入待漂白身份证号码,按前述方式计算待漂白身份证号码的行政区划代码x的哈希值hashCode并计算其对应的列表序号groupIndex;
步骤150、计算x在groupIndex对应的列表codeList的位置codeInd;取codeList中mod(codeInd+CodeShift,len)位置上的行政区划代码作为新的行政区划代码,其中len为codeList的长度,CodeShift为预设的偏移量;
步骤160、根据哈希值hashCode按一定的方法计算顺序码的偏移量orderCodeShift;新顺序码newOrderCode=mod(orderCode+orderCodeShift,1000),其中orderCode为旧顺序码;
步骤170、年份编码前两位保持不变,根据新顺序码newOrderCode按一定的方法计算年份编码后两位的偏移量YYShift;新年份编码后两位newYY=mod(YY+YYShift,100),其中YY为旧年份编码后两位;
步骤180、根据新年份编码后两位newYY按一定的方法计算月份编码的偏移量MMShift;新月份编码newMM=(MM+MMShift,12),其中MM为旧月份编码;
步骤190、根据新月份编码newMM按一定的方法计算日期编码的偏移量DDShift,新日期编码newDD=mod(DD+DDShift,maxDay);其中DD为旧日期编码,maxDay为新月份编码newMM对应的月中最大的天数maxDay;
步骤195、计算新的校验码,输出漂白后的身份证号码。
2.根据权利要求1所述的18位身份证号码漂白方法,其特征在于,计算行政区划代码x的哈希值hashCode的方法仅以x为变量。
3.根据权利要求2所述的18位身份证号码漂白方法,其特征在于,行政区划代码x的哈希值hashCode为x的六位数字之和。
4.根据权利要求1所述的18位身份证号码漂白方法,其特征在于,orderCodeShift=groupIndex×13–17。
5.根据权利要求1所述的18位身份证号码漂白方法,其特征在于,YYShift=mod(newOrderCode,13)×2–13。
6.根据权利要求1所述的18位身份证号码漂白方法,其特征在于,MMShift=mod(newYY,11)–6。
7.根据权利要求1所述的18位身份证号码漂白方法,其特征在于,DDShift=newMM–5。
8.一种18位身份证号码反向漂白方法,其特征在于,包括:
步骤200、收集所有的行政区划代码数据,初始化与漂白时数量相同的AddrCodeGroups个列表codeList以用于存储行政区划代码;
步骤210、按与漂白时相同的方式计算行政区划代码x的哈希值hashCode;
步骤220、计算行政区划代码x对应的列表序号groupIndex:groupIndex=mod(hashCode,AddrCodeGroups);
步骤230、将行政区划代码x存入groupIndex对应的列表中;
步骤240、输入待反向漂白身份证号码,按前述方式计算待反向漂白身份证号码的行政区划代码x的哈希值hashCode并计算其对应的列表序号groupIndex;
步骤250、计算x在groupIndex对应的列表codeList的位置codeInd;取codeList中mod(codeInd–CodeShift,len)位置上的行政区划代码作为新的行政区划代码,其中len为codeList的长度,CodeShift为漂白时使用的偏移量;
步骤260、根据哈希值hashCode按漂白时的方法计算顺序码的偏移量orderCodeShift;新顺序码newOrderCode=mod(orderCode–orderCodeShift,1000),其中orderCode为旧顺序码;
步骤270、年份编码前两位保持不变,根据旧顺序码OrderCode按漂白时的方法计算年份编码后两位的偏移量YYShift;新年份编码后两位newYY=mod(YY–YYShift,100),其中YY为旧年份编码后两位;
步骤280、根据旧年份编码后两位YY按漂白时的方法计算月份编码的偏移量MMShift;新月份编码newMM=(MM–MMShift,12),其中MM为旧月份编码;
步骤290、根据旧月份编码MM按一定的方法计算日期编码的偏移量DDShift,新日期编码newDD=mod(DD–DDShift,maxDay);其中DD为旧日期编码,maxDay为新月份编码newMM对应的月中最大的天数maxDay;
步骤295、计算新的校验码,输出反向漂白后的身份证号码。
9.根据权利要求8所述的18位身份证号码反向漂白方法,其特征在于,计算行政区划代码x的哈希值hashCode的方法仅以x为变量。
10.根据权利要求9所述的18位身份证号码反向漂白方法,其特征在于,行政区划代码x的哈希值hashCode为x的六位数字之和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510310488.2A CN104899521B (zh) | 2015-06-08 | 2015-06-08 | 18位身份证号码漂白和反向漂白方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510310488.2A CN104899521B (zh) | 2015-06-08 | 2015-06-08 | 18位身份证号码漂白和反向漂白方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104899521A CN104899521A (zh) | 2015-09-09 |
CN104899521B true CN104899521B (zh) | 2017-11-28 |
Family
ID=54032181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510310488.2A Active CN104899521B (zh) | 2015-06-08 | 2015-06-08 | 18位身份证号码漂白和反向漂白方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104899521B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108154044A (zh) * | 2016-12-05 | 2018-06-12 | 广东精点数据科技股份有限公司 | 一种基于随机和置换相结合的身份证号码脱敏方法及装置 |
CN109273051B (zh) * | 2018-08-30 | 2022-01-18 | 夏茂 | 基于端粒长度的身份信息编码方法 |
CN112182654B (zh) * | 2020-09-29 | 2024-03-05 | 浙江鸿程计算机系统有限公司 | 一种保留统计级特征属性的身份证号脱敏方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103595539A (zh) * | 2013-11-26 | 2014-02-19 | 南开大学 | 保留格式的数值型个人识别信息的加密方法 |
-
2015
- 2015-06-08 CN CN201510310488.2A patent/CN104899521B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103595539A (zh) * | 2013-11-26 | 2014-02-19 | 南开大学 | 保留格式的数值型个人识别信息的加密方法 |
Non-Patent Citations (4)
Title |
---|
《Ciphers with Arbitrary Finite Domains》;J Black等;《Topics in Cryptology-CT-RSA"02》;20021231;第114-130页 * |
《保留格式加密技术应用研究》;李敏;《中国博士学位论文全文数据库》;20130715;第I138-9页 * |
《保留格式加密技术研究》;刘哲理等;《软件学报》;20120131;第23卷(第1期);第152-170页 * |
《保留格式加密模型研究》;刘哲理等;《通信学报》;20110630;第32卷(第6期);第184-190页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104899521A (zh) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109472338B (zh) | 一种商品防伪二维码的批量生成方法 | |
US11062303B2 (en) | Cryptographically concealing amounts transacted on a ledger while preserving a network's ability to verify the transaction | |
CN106161006B (zh) | 一种数字加密算法 | |
CN107181797A (zh) | 一种区块链的区块压缩方法和系统 | |
CN103595539B (zh) | 保留格式的数值型个人识别信息的加密方法 | |
CN104899521B (zh) | 18位身份证号码漂白和反向漂白方法 | |
CN106301759B (zh) | 一种数据加密的方法、解密的方法及装置 | |
GB2520446A (en) | Quorum based data processing | |
CN108154044A (zh) | 一种基于随机和置换相结合的身份证号码脱敏方法及装置 | |
CN110084063A (zh) | 一种保护隐私数据的梯度下降计算方法 | |
US10650165B2 (en) | Systems and methods for tokenization to support pseudonymization of sensitive data | |
CN107425956B (zh) | 一种字符型商品防伪码生成方法 | |
CN106131139A (zh) | 一种云关系数据库的浮点数据的加密及查询方法 | |
CN107154851A (zh) | 一种数据加密和解密的方法及装置 | |
CN102710657B (zh) | 一种一次性口令生成方法及系统 | |
CN104899520B (zh) | 15位身份证号码漂白和反向漂白方法 | |
JP2004523155A (ja) | 文書を保護するための装置及び方法、該方法によって生成された暗号化された情報を使用することによって文書の真正性を検証するための装置及び方法、及び前記暗号化された情報によって保護された文書 | |
CN104376307A (zh) | 一种指纹图像信息编码方法 | |
Torvi et al. | An unique data security using text steganography | |
CN105005743B (zh) | 电话号码漂白和反向漂白方法 | |
CN103824371A (zh) | 一种电子即开型彩票防伪方法 | |
CN111552738A (zh) | 基于物联网的区块链生态系统和区块链上链方法 | |
CN103295053A (zh) | 多密码预警式内存锁银行卡 | |
US20130110846A1 (en) | Data processing method and apparatus | |
CN112286936A (zh) | 一种对账方法、系统及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: 518057 2203/2204, Building 1, Huide Building, North Station Community, Minzhi Street, Longhua District, Shenzhen, Guangdong Province Patentee after: SHENZHEN AUDAQUE DATA TECHNOLOGY Ltd. Address before: 518057 Rooms 713, 715 and 716, 7/F, Software Building, No. 9, High-tech Middle Road, High-tech Zone, Nanshan District, Shenzhen, Guangdong Province Patentee before: SHENZHEN AUDAQUE DATA TECHNOLOGY Ltd. |
|
CP02 | Change in the address of a patent holder |