CN104899521A - 18位身份证号码漂白和反向漂白方法 - Google Patents
18位身份证号码漂白和反向漂白方法 Download PDFInfo
- Publication number
- CN104899521A CN104899521A CN201510310488.2A CN201510310488A CN104899521A CN 104899521 A CN104899521 A CN 104899521A CN 201510310488 A CN201510310488 A CN 201510310488A CN 104899521 A CN104899521 A CN 104899521A
- Authority
- CN
- China
- Prior art keywords
- bleaching
- code
- new
- coding
- 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.)
- Granted
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 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
本发明涉及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 true CN104899521A (zh) | 2015-09-09 |
CN104899521B 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108154044A (zh) * | 2016-12-05 | 2018-06-12 | 广东精点数据科技股份有限公司 | 一种基于随机和置换相结合的身份证号码脱敏方法及装置 |
CN109273051A (zh) * | 2018-08-30 | 2019-01-25 | 夏茂 | 基于端粒长度的身份信息编码模型 |
CN112182654A (zh) * | 2020-09-29 | 2021-01-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 |
---|
J BLACK等: "《Ciphers with Arbitrary Finite Domains》", 《TOPICS IN CRYPTOLOGY-CT-RSA"02》 * |
刘哲理等: "《保留格式加密技术研究》", 《软件学报》 * |
刘哲理等: "《保留格式加密模型研究》", 《通信学报》 * |
李敏: "《保留格式加密技术应用研究》", 《中国博士学位论文全文数据库》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108154044A (zh) * | 2016-12-05 | 2018-06-12 | 广东精点数据科技股份有限公司 | 一种基于随机和置换相结合的身份证号码脱敏方法及装置 |
CN109273051A (zh) * | 2018-08-30 | 2019-01-25 | 夏茂 | 基于端粒长度的身份信息编码模型 |
CN109273051B (zh) * | 2018-08-30 | 2022-01-18 | 夏茂 | 基于端粒长度的身份信息编码方法 |
CN112182654A (zh) * | 2020-09-29 | 2021-01-05 | 浙江鸿程计算机***有限公司 | 一种保留统计级特征属性的身份证号脱敏方法 |
CN112182654B (zh) * | 2020-09-29 | 2024-03-05 | 浙江鸿程计算机***有限公司 | 一种保留统计级特征属性的身份证号脱敏方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104899521B (zh) | 2017-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109472338B (zh) | 一种商品防伪二维码的批量生成方法 | |
CN107276754B (zh) | 一种基于区块链大量生成私钥的方法及装置 | |
CN102184380B (zh) | 一种色彩叠加二维码***及其应用方法 | |
CN106161006B (zh) | 一种数字加密算法 | |
CN107145799A (zh) | 一种数据脱敏方法及装置 | |
CN103595539B (zh) | 保留格式的数值型个人识别信息的加密方法 | |
CN113194213B (zh) | 一种基于秘密共享和混沌映射的png图像信息隐藏和恢复方法 | |
CN111314069B (zh) | 基于区块链的摇号***、方法、电子设备及存储介质 | |
CN107181797A (zh) | 一种区块链的区块压缩方法和*** | |
US10650165B2 (en) | Systems and methods for tokenization to support pseudonymization of sensitive data | |
CN102968725A (zh) | 农产品追溯防伪标识方法 | |
CN104899521A (zh) | 18位身份证号码漂白和反向漂白方法 | |
CN109426731A (zh) | 保护数据的方法 | |
CN112163230A (zh) | 一种汉字加密的商品防伪码生成方法 | |
CN112149773A (zh) | 一种基于汉字加密的商品防伪码生成方法 | |
CN104899520A (zh) | 15位身份证号码漂白和反向漂白方法 | |
Khurram et al. | SFour: a protocol for cryptographically secure record linkage at scale | |
CN112217627A (zh) | 一种分层加密的商品防伪码生成方法 | |
CN105005743A (zh) | 电话号码漂白和反向漂白方法 | |
CN105989309A (zh) | 一种密码 | |
CN111552738A (zh) | 基于物联网的区块链生态***和区块链上链方法 | |
CN110515591A (zh) | 基于区块链的随机数生成方法及装置 | |
KR102525749B1 (ko) | 인공지능 양자내성 암호화 방법 및 장치 | |
CN112668017B (zh) | 一种具备自解释性加密卡券的构造方法、解密方法及其装置 | |
US11275869B2 (en) | Credit card and operating method therefor |
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 |