本發(fā)明涉及信息安全技術(shù)領(lǐng)域,具體而言,涉及一種出生日期數(shù)據(jù)的脫敏方法及裝置。
背景技術(shù):
目前,在業(yè)務(wù)生產(chǎn)系統(tǒng)中已經(jīng)積累了海量的客戶出生日期等敏感數(shù)據(jù)??蛻舻某錾掌?以及含有出生日期的身份證號)是非常重要的隱私信息。如果這些數(shù)據(jù)泄漏,會給數(shù)據(jù)擁有者帶來經(jīng)濟(jì)、乃至聲譽(yù)上的損失。因此,數(shù)據(jù)擁有者在使用客戶信息時,會對客戶的出生日期信息進(jìn)行脫敏處理。
數(shù)據(jù)脫敏,又稱為數(shù)據(jù)漂白、數(shù)據(jù)去隱私化或數(shù)據(jù)變形,指對某些敏感信息通過脫敏規(guī)則進(jìn)行數(shù)據(jù)的變形,實(shí)現(xiàn)敏感隱私數(shù)據(jù)的可靠保護(hù)。
現(xiàn)有技術(shù)中,在對客戶的生日進(jìn)行脫敏時,常用的方法是固定替換,即將所有客戶的出生日期隨機(jī)替換為同一個固定的日期,這種方法使得所有客戶的生日日期都是同一天,在做統(tǒng)計時,不具有數(shù)據(jù)分析的價值,或者采取將所有客戶的出生日期進(jìn)行隨機(jī)替換,變成另外一個出生日期,但是會使得得到的出生日期不合理,比如出生日期出現(xiàn)在未來的某一天。
綜上,現(xiàn)有的出生日期脫敏方法通常會造成失去出生日期本身所屬的年齡范圍的特點(diǎn),從而在用于數(shù)據(jù)分析時價值不大的問題。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種出生日期數(shù)據(jù)的脫敏方法及裝置,以保留脫敏后的出生日期本身的屬性特點(diǎn),保護(hù)客戶隱私的同時,不降低對數(shù)據(jù)分析的價值。
第一方面,本發(fā)明實(shí)施例提供了一種出生日期數(shù)據(jù)的脫敏方法,包括:
獲取待脫敏的出生日期和基準(zhǔn)日期,所述基準(zhǔn)日期晚于待脫敏的出生日期、且早于或等于當(dāng)前日期;
根據(jù)待脫敏的出生日期與所述基準(zhǔn)日期之間的第一間隔天數(shù),從預(yù)存的多級區(qū)間段中,確定所述待脫敏的出生日期所屬的第一區(qū)間段,其中,不同的區(qū)間段對應(yīng)不同的年齡范圍,同一區(qū)間段對應(yīng)相同的年齡范圍;
按照預(yù)設(shè)的脫敏算法,確定該待脫敏的出生日期在所屬的所述第一區(qū)間段中對應(yīng)的脫敏后的出生日期。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第一種可能的實(shí)施方式,所述按照預(yù)設(shè)的脫敏算法,確定該待脫敏的出生日期在所屬的所述第一區(qū)間段中對應(yīng)的脫敏后的出生日期,包括:
按照預(yù)設(shè)的脫敏算法,確定在該待脫敏的出生日期所屬的第一區(qū)間段中,所述脫敏后的出生日期相對所述基準(zhǔn)日期的天數(shù)偏移量;
根據(jù)所述基準(zhǔn)日期,以及所述脫敏后的出生日期相對所述基準(zhǔn)日期的天數(shù)偏移量,確定所述脫敏后的出生日期。
結(jié)合第一方面的第一種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第二種可能的實(shí)施方式,所述按照預(yù)設(shè)的脫敏算法,確定脫敏后的出生日期相對所述基準(zhǔn)日期的天數(shù)偏移量,包括:
任取一個干擾值,所述干擾值為大于或等于0的任意整數(shù);以及
根據(jù)所述第一間隔天數(shù)、和在所述第一區(qū)間段之前的區(qū)間段的區(qū)間長度,確定第二間隔天數(shù);其中,所述第二間隔天數(shù)為所述第一間隔天數(shù)減去在所述第一區(qū)間段之前的各級區(qū)間段的區(qū)間長度之后的數(shù);在所述第一區(qū)間段之前的區(qū)間段是指對應(yīng)的間隔天數(shù)小于所述第一間隔天數(shù)的區(qū)間段;
根據(jù)所述第二間隔天數(shù)和所述干擾值,生成所述脫敏后的出生日期相對所述基準(zhǔn)日期的天數(shù)偏移量。
結(jié)合第一方面的第二種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第三種可能的實(shí)施方式,所述根據(jù)所述第二間隔天數(shù)和所述干擾值,生成所述脫敏后的出生日期相對所述基準(zhǔn)日期的天數(shù)偏移量,包括:
將所述第二間隔天數(shù)對應(yīng)的數(shù)值在目標(biāo)進(jìn)制下的每一位上的值,與所述干擾值在該目標(biāo)進(jìn)制下的相應(yīng)位上的值進(jìn)行和運(yùn)算;
將所述和運(yùn)算后的值與所述目標(biāo)進(jìn)制對應(yīng)的進(jìn)制數(shù)進(jìn)行模運(yùn)算,得到所述天數(shù)偏移量在所述相應(yīng)位上的值;
將得到的所述天數(shù)偏移量在所述目標(biāo)進(jìn)制下的各個位上的值進(jìn)行整合后,加上在所述第一區(qū)間段之前的各級區(qū)間段的區(qū)間長度,得到所述目標(biāo)進(jìn)制下的天數(shù)偏移量對應(yīng)的數(shù)值。
結(jié)合第一方面的第三種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第四種可能的實(shí)施方式,
當(dāng)所述待脫敏的出生日期所屬的第一區(qū)間段是所述多級區(qū)間段的第一級區(qū)間段或第二級區(qū)間段時,所述目標(biāo)進(jìn)制為八進(jìn)制,所述模運(yùn)算為模八運(yùn)算;
當(dāng)所述待脫敏的出生日期所屬的第一區(qū)間段是所述多級區(qū)間段的第三級區(qū)間段時,所述目標(biāo)進(jìn)制為十六進(jìn)制,所述模運(yùn)算為模十六運(yùn)算;
所述第一級區(qū)間段對應(yīng)的所述第一間隔天數(shù)的范圍是大于或等于0且小于32768天,所述第二級區(qū)間段對應(yīng)的所述第一間隔天數(shù)的范圍是大于或等于32768天且小于65536天,所述第三級區(qū)間段對應(yīng)的所述第一間隔天數(shù)的范圍是大于或等于65536天且小于1048576天。
結(jié)合第一方面,本發(fā)明實(shí)施例提供了第一方面的第五種可能的實(shí)施方式,所述確定該待脫敏的出生日期在所屬的所述第一區(qū)間段中對應(yīng)的脫敏后的出生日期之后,還包括:
獲取脫敏后的出生日期和所述基準(zhǔn)日期,所述基準(zhǔn)日期晚于脫敏后的出生日期;
根據(jù)所述脫敏后的出生日期與所述基準(zhǔn)日期之間的第三間隔天數(shù),從所述預(yù)存的多級區(qū)間段中,確定所述脫敏后的出生日期所屬的第二區(qū)間段;
按照預(yù)設(shè)的還原算法,確定該脫敏后的出生日期在所屬的所述第二區(qū)間段中對應(yīng)的脫敏前的出生日期。
結(jié)合第一方面的第五種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第六種可能的實(shí)施方式,所述按照預(yù)設(shè)的還原算法,確定該脫敏后的出生日期在所屬的所述第二區(qū)間段中對應(yīng)的脫敏前的出生日期,包括:
根據(jù)預(yù)設(shè)的還原算法,確定在該脫敏后的出生日期所屬的第二區(qū)間段中,所述脫敏前的出生日期相對所述基準(zhǔn)日期的天數(shù)偏移量;
根據(jù)所述基準(zhǔn)日期,以及所述脫敏前的出生日期相對所述基準(zhǔn)日期的天數(shù)偏移量,確定所述脫敏前的出生日期。
結(jié)合第一方面的第六種可能的實(shí)施方式,本發(fā)明實(shí)施例提供了第一方面的第七種可能的實(shí)施方式,所述按照預(yù)設(shè)的還原算法,確定脫敏前的出生日期相對所述基準(zhǔn)日期的天數(shù)偏移量,包括:
根據(jù)所述第三間隔天數(shù)、和在所述第二區(qū)間段之前的區(qū)間段的區(qū)間長度,確定第四間隔天數(shù);其中,所述第四間隔天數(shù)為所述第三間隔天數(shù)減去在所述第二區(qū)間段之前的各級區(qū)間段的區(qū)間長度之后的數(shù);在所述第二區(qū)間段之前的區(qū)間段是指對應(yīng)的間隔天數(shù)小于所述第三間隔天數(shù)的區(qū)間段;
根據(jù)所述第四間隔天數(shù)和選擇的一個干擾值,生成所述脫敏前的出生日期相對所述基準(zhǔn)日期的天數(shù)偏移量;其中,所述一個干擾值為大于或等于0的整數(shù)。
第二方面,提供了一種出生日期的脫敏裝置,包括:
獲取模塊,用于獲取待脫敏的出生日期和基準(zhǔn)日期,所述基準(zhǔn)日期晚于待脫敏的出生日期、且早于或等于當(dāng)前日期;
執(zhí)行模塊,用于根據(jù)待脫敏的出生日期與所述基準(zhǔn)日期之間的第一間隔天數(shù),從預(yù)存的多級區(qū)間段中,確定所述待脫敏的出生日期所屬的第一區(qū)間段,其中,不同的區(qū)間段對應(yīng)不同的年齡范圍,同一區(qū)間段對應(yīng)相同的年齡范圍;
確定模塊,按照預(yù)設(shè)的脫敏算法,確定該待脫敏的出生日期在所屬的所述第一區(qū)間段中對應(yīng)的脫敏后的出生日期。
第三方面,本發(fā)明實(shí)施例提供了一種出生日期數(shù)據(jù)的脫敏方法,包括:
第一設(shè)備接收第二設(shè)備發(fā)送的待脫敏的出生日期集合和基準(zhǔn)日期,所述待脫敏的出生日期集合中包含多個待脫敏的出生日期,所述基準(zhǔn)日期晚于各個待脫敏的出生日期、且早于或等于當(dāng)前日期;
根據(jù)每一個待脫敏的出生日期與所述基準(zhǔn)日期之間的第一間隔天數(shù),從預(yù)存的多級區(qū)間段中,確定該待脫敏的出生日期所屬的第一區(qū)間段,按照預(yù)設(shè)的脫敏算法,確定該待脫敏的出生日期在所屬的所述第一區(qū)間段中對應(yīng)的脫敏后的出生日期;
將所述待脫敏的出生日期集合中的每一個待脫敏的出生日期對應(yīng)的脫敏后的出生日期發(fā)送給所述第二設(shè)備。
本發(fā)明實(shí)施例提供的一種出生日期數(shù)據(jù)的脫敏方法及裝置,可以將待脫敏的出生日期脫敏成同區(qū)間段的出生日期,從而使得脫敏后的出生日期仍然在原有的出生日期所屬的年齡范圍,即保留了待脫敏的出生日期的原有的特定年齡范圍不變,既保護(hù)可客戶的隱私,又便于后續(xù)數(shù)據(jù)分析使用。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說明如下。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1示出了本發(fā)明實(shí)施例1所提供的一種出生日期數(shù)據(jù)的脫敏方法的流程圖;
圖2示出了本發(fā)明實(shí)施例1所提供的一種確定出生日期數(shù)據(jù)的具體脫敏方法的流程圖;
圖3示出了本發(fā)明實(shí)施例1所提供的一種對脫敏后的出生日期數(shù)據(jù)進(jìn)行還原的方法流程圖;
圖4示出了本發(fā)明實(shí)施例1所提供的一種對脫敏后的出生日期數(shù)據(jù)進(jìn)行還原的具體方法流程圖;
圖5示出了本發(fā)明實(shí)施例所2提供的一種出生日期數(shù)據(jù)的脫敏裝置的結(jié)構(gòu)示意圖;
圖6示出了本發(fā)明實(shí)施例3所提供的一種出生日期數(shù)據(jù)的脫敏方法流程圖;
圖7示出了本發(fā)明實(shí)施例3所提供的一種對脫敏后的出生日期數(shù)據(jù)進(jìn)行還原的方法流程圖。
圖標(biāo):500-獲取模塊;501-執(zhí)行模塊;502-確定模塊。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例。基于本發(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例1
本發(fā)明實(shí)施例1提供了一種出生日期數(shù)據(jù)的脫敏方法,其流程圖如圖1所示,具體步驟如下所示:
s100,獲取待脫敏的出生日期和基準(zhǔn)日期,該基準(zhǔn)日期晚于待脫敏的出生日期、且早于或等于當(dāng)前日期。
在待脫敏的出生日期進(jìn)行脫敏處理時,一般將基準(zhǔn)日期定位當(dāng)天的日期。
s110,根據(jù)待脫敏的出生日期和基準(zhǔn)日期之間的第一間隔天數(shù),從預(yù)存的多級區(qū)間段中,確定該待脫敏的出生日期所屬的第一區(qū)間段,其中,不同的區(qū)間段對應(yīng)不同的年齡范圍,同一區(qū)間段對應(yīng)相同的年齡范圍。
通過以下過程對人口年齡特征進(jìn)行分布:
世界衛(wèi)生組織2015年發(fā)布的《世界衛(wèi)生統(tǒng)計》中,指出今年來,全球人口平均壽命為71歲,其中女性73歲、男性68歲。其中在此次報告中的人口平均壽命為:男性74歲,女性77歲;美國的人口平均壽命為女性81歲、男性76歲。此外,女性的平均壽命最高的國際是日本(87歲),男性平均壽命最高的國家是冰島(81.2歲)。
我國于2010年進(jìn)行了第六次全國人口普查,據(jù)國家統(tǒng)計局2011年4月28日分布公告,顯示中國總?cè)丝诮刂巩?dāng)時為1370536875。其中按年齡階段劃分為:
0-14歲人口為222459737,占16.60%;
15-59歲人口為939616410,占人口70.14%;
60歲及以上人口為177648705,占人口13.26%,其中65歲及以上人口為118831709人,占8.87%。
進(jìn)一步的統(tǒng)計分析表明:
85歲及以上人口為7616148人,占總?cè)丝诒壤秊?.5714%
89歲及以上人口為2699618人,占總?cè)丝诒壤秊?.2026%;
100歲及以上人口為35934人,占總?cè)丝诒壤秊?.0027%。
以上數(shù)據(jù)顯示,當(dāng)前人類的平均壽命在71歲左右。65歲及以上的人口在一個國家中占據(jù)比例較小,而85歲、89歲及以上的人口在一個國家占據(jù)的比例極低。因此,我們在脫敏處理出生日期是,涉及到的大部分?jǐn)?shù)據(jù)都應(yīng)當(dāng)使得年齡在85歲以下,而89歲以上的出生日期就更少了,因此,可以按照年齡的范圍,以基準(zhǔn)日期為準(zhǔn),向前進(jìn)行劃分區(qū)間。
本發(fā)明實(shí)施例中將待脫敏的出生日期劃分為三個區(qū)間段,劃分依據(jù)是:當(dāng)待脫敏的出生日期距離基準(zhǔn)日期的間隔天數(shù)所屬的范圍是大于或等于0天且小于32768天時為第一級區(qū)間段、所屬的范圍是大于32768天且小于65536天時為第二級區(qū)間段、所屬的范圍是大于或等于65536且小于1048576天時為第三個區(qū)間段,其中32768天略大于89年且小于90年,65536天大于179年且小于180年,1048576天大于2870年且小于2871年,比如當(dāng)選擇的基準(zhǔn)日期為2017年1月1日時,對應(yīng)的第一級區(qū)間段代表的出生日期是晚于1927年4月16日且早于或等于2017年1月1日,第二級區(qū)間段代表的出生日期是晚于1837年7月28日且早于或等于1927年4月16日,第三級區(qū)間段代表的出生日期是晚于公元前854年2月6日且早于或等于1837年7月28日。特別的,當(dāng)待脫敏的出生日期早于或等于公元前854年2月6日時,對其不進(jìn)行脫敏。
其中,第一區(qū)間段并不是多級區(qū)間的第一級區(qū)間段,僅僅是為了敘述方便的稱號。
s120,按照預(yù)設(shè)的脫敏算法,確定該待脫敏的出生日期在所屬的第一區(qū)間段中對應(yīng)的脫敏后的出生日期。
其中預(yù)設(shè)的脫敏算法,指為了使得脫敏后的出生日期與待脫敏的出生日期在同一個年齡范圍內(nèi)而使用的一些公式算法,將在之后的實(shí)施例中進(jìn)行詳細(xì)闡述。
在步驟s120中,具體確定步驟包括如下,其流程圖如圖2所示:
s200,按照預(yù)設(shè)的脫敏算法,確定在該待脫敏的出生日期所屬的第一區(qū)間段中,脫敏后的出生日期相對基準(zhǔn)日期的天數(shù)偏移量。
s210,根據(jù)基準(zhǔn)日期,以及脫敏后的出生日期相對基準(zhǔn)日期的天數(shù)偏移量,確定脫敏后的出生日期。
其中天數(shù)偏移量,是指脫敏后的出生日期早于基準(zhǔn)日期的具體天數(shù)。確定該具體天數(shù)的方法如下:
(1)任取一個干擾值,所述干擾值為大于0的任意整數(shù)。
(2)根據(jù)該第一間隔天數(shù)、和在第一區(qū)間段之前的區(qū)間段的區(qū)間長度,確定第二間隔天數(shù);其中該第二間隔天數(shù)為第一間隔天數(shù)減去在第一區(qū)間段之前的各級區(qū)間段的區(qū)間長度之后的數(shù);在第一區(qū)間段之前的區(qū)間段是指對應(yīng)的間隔天數(shù)小于第一間隔天數(shù)的區(qū)間段。
(3)根據(jù)該第二間隔天數(shù)和上述干擾值,生成脫敏后的出生日期相對基準(zhǔn)日期的天數(shù)偏移量。
在第(3)步中,具體包括:
將該第二間隔天數(shù)對應(yīng)的數(shù)值在目標(biāo)進(jìn)制下的每一位上的值,與干擾值在該目標(biāo)進(jìn)制下的相應(yīng)位上的值進(jìn)行和運(yùn)算。
將該和運(yùn)算后的值與目標(biāo)進(jìn)制對應(yīng)的進(jìn)制數(shù)進(jìn)行模mod運(yùn)算,得到天數(shù)偏移量在相應(yīng)位上的值。
其中模運(yùn)算或者稱為mod運(yùn)算,即求余運(yùn)算,“?!笔恰癿od”的音譯。
將得到的天數(shù)偏移量在目標(biāo)進(jìn)制下的各個位上的值進(jìn)行整合后,加上在第一區(qū)間段之前的各級區(qū)間段的區(qū)間長度,得到目標(biāo)進(jìn)制下的天數(shù)偏移量對應(yīng)的數(shù)值。
其中,對目標(biāo)進(jìn)制和模運(yùn)算的限定有以下規(guī)定:
當(dāng)待脫敏的出生日期所屬的第一區(qū)間段是多級區(qū)間段的第一級區(qū)間段或第二級區(qū)間段時,上述目標(biāo)進(jìn)制為八進(jìn)制,模運(yùn)算為模八運(yùn)算。
當(dāng)待脫敏的出生日期所屬的第一區(qū)間段是多級區(qū)間段的第三級區(qū)間段時,上述目標(biāo)進(jìn)制為十六進(jìn)制,模運(yùn)算為模十六運(yùn)算。
其中,第一級區(qū)間段對應(yīng)的第一間隔天數(shù)的范圍是大于或等于0且小于或等于32768天,第二級區(qū)間段對應(yīng)的第一間隔天數(shù)的范圍是大于32768天且小于65536天,第三級區(qū)間段對應(yīng)的第一間隔天數(shù)的范圍是大于或等于65536天且小于1048576天。
一種較佳的實(shí)施方式,在本發(fā)明實(shí)施例1中提出,出生日期脫敏算法的主要過程描述如下:
1)檢查待脫敏的出生日期(oridate)、基準(zhǔn)日期(refdate)和干擾值(key)的合法性,該合法性指出生日期早于基準(zhǔn)日期,基準(zhǔn)日期不晚于當(dāng)天日期,key的值為大于或等于0的整數(shù)。
2)計算待脫敏的出生日期與基準(zhǔn)日期的間隔天數(shù),并記為第一間隔天數(shù)(nintervalday),nitervalday=refdate-oridate,顯然nintervalday的值大于等于0。
3)設(shè)置區(qū)間標(biāo)志為nflag=nintervalday÷32768,nflag取整數(shù)部分。
當(dāng)nflag=0時,則第一間隔天數(shù)大于或等于0天且小于32768天,將待脫敏的出生日期所屬的第一區(qū)間段記為第一級區(qū)間段;
當(dāng)nflag=1時,則第一間隔天數(shù)大于或等于32768天且小于65536天,將待脫敏的出生日期所屬的第一區(qū)間段記為第二級區(qū)間段;
當(dāng)1<nflag<32,且nflag取整數(shù)時,則第一間隔天數(shù)大于或等于65536天且小于1048576天,將待脫敏的出生日期所屬的第一區(qū)間段記為第三級區(qū)間段。
4)如果nflag等于0或者1時,執(zhí)行以下步驟:
4.1)計算第二間隔天數(shù)nintervalday’
nintervalday’=nintervalday-32768×nflag,即第二間隔天數(shù)取的是第一間隔天數(shù)減去第一區(qū)間段之前的各級區(qū)間段的區(qū)間長度之后的數(shù),特別的,當(dāng)nflag=0時,即待脫敏出生日期所屬的第一區(qū)間段為第一級區(qū)間內(nèi)時,第二間隔天數(shù)等于第一間隔天數(shù)。
比如,第一間隔天數(shù)為36000天時,則nflag=1,則第二間隔天數(shù)為3232天;當(dāng)?shù)谝婚g隔天數(shù)為30000天時,則nflag=0,則第二間隔天數(shù)也為30000天。
4.2)將nintervalday’和key轉(zhuǎn)化為目標(biāo)進(jìn)制數(shù),此處以八進(jìn)制數(shù)進(jìn)行說明,分別用d1d2d3d4d5、k1k2k3k4k5表示,用di表示d1~d5,用ki表示k1~k5,(1≤i≤5)。其中選取八進(jìn)制,是因為32768恰好為215,其換成八進(jìn)制為100000,小于這個數(shù)的八進(jìn)制數(shù)最大即為77777,恰好是五位八進(jìn)制數(shù),其中d1d2d3d4d5和k1k2k3k4k5表示小于五位八進(jìn)制數(shù)77777的五位八進(jìn)制數(shù),當(dāng)位數(shù)不夠五位時,在高位前補(bǔ)0。當(dāng)干擾值key的取值大于五位的八進(jìn)制數(shù)時,從低位至高位依次取前五位八進(jìn)制數(shù),將超過第五位的數(shù)剔除,比如當(dāng)key的值為六位八進(jìn)制數(shù)123456,則將key的值記為23456。下面將進(jìn)行脫敏后的出生日期相對于基準(zhǔn)日期的天數(shù)偏移量的計算過程:
4.3)按照以下規(guī)則逐位進(jìn)行目標(biāo)進(jìn)制運(yùn)算,其中進(jìn)行模八運(yùn)算,是為了使根據(jù)八進(jìn)制數(shù)計算得到的數(shù)還是八進(jìn)制數(shù):
具體過程為:將該第二間隔天數(shù)對應(yīng)的數(shù)值在八進(jìn)制下的每一位上的值,與干擾值在該八進(jìn)制下的相應(yīng)位上的值進(jìn)行和運(yùn)算。
將該和運(yùn)算后的值與八進(jìn)制對應(yīng)的進(jìn)制數(shù)進(jìn)行模mod運(yùn)算,得到天數(shù)偏移量在相應(yīng)位上的值,具體運(yùn)算過程如下:
4.3.1)計算r5=(d5+k5)mod8,mod8表示模八運(yùn)算;
4.3.2)計算r4=(((d4+k4)mod8)+r5)mod8;
4.3.3)計算r3=(((d3+k3)mod8)+r4)mod8;
4.3.4)計算r2=(((d2+k2)mod8)+r3)mod8;
4.3.5)計算r1=(((d1+k1)mod8)+r2)mod8。
將該和運(yùn)算后的值與八進(jìn)制對應(yīng)的進(jìn)制數(shù)進(jìn)行模mod運(yùn)算,得到天數(shù)偏移量在相應(yīng)位上的值,r1r2r3r4r5,為了便于后續(xù)計算,將該八進(jìn)制數(shù)通過以下公式換算成十進(jìn)制數(shù),用nres表示,nres=r1×84+r2×83+r3×82+r4×8+r5
根據(jù)下式計算脫敏后的出生日期相對于基準(zhǔn)日期的天數(shù)偏移量:
nresday=nres+32768×nflag。
5)當(dāng)1<nflag<32時,則第二間隔天數(shù)表示大于或等于65536天且1048576天,表示待脫敏出生日期所屬的第一區(qū)間段為第三級區(qū)間段。
5.1)令nflag=2,nintervalday’=nintervalday-32768×2;
5.2)將nintervalday’和干擾值key轉(zhuǎn)換為十六進(jìn)制數(shù),因為32768×32=220,比該數(shù)小的數(shù)都小于最大的五位十六進(jìn)制數(shù);用dx1dx2dx3dx4dx5、k1k2k3k4k5表示第二間隔天數(shù)和干擾值,其中dxi和ki(1≤i≤5),滿足0x0≤dxi≤0xf和0x0≤ki≤0xf,其中dx1dx2dx3dx4dx5和k1k2k3k4k5表示小于五位十六進(jìn)制數(shù)fffff的五位十六進(jìn)制數(shù),當(dāng)位數(shù)不夠五位時,在高位前進(jìn)行補(bǔ)0,當(dāng)干擾值key的取值大于五位的十六進(jìn)制數(shù)時,從低位至高位依次取前五位十六進(jìn)制數(shù),將超過第五位的數(shù)剔除,比如當(dāng)key的值為六位十六進(jìn)制數(shù)123456,則將key的值記為23456。
5.3)按照以下規(guī)則逐位進(jìn)行模十六運(yùn)算:
5.3.1)計算r5=(d5+k5)mod16,mod16表示模十六運(yùn)算;
5.3.2)計算r4=(((d4+k4)mod16)+r5)mod16;
5.3.3)計算r3=(((d3+k3)mod16)+r4)mod16;
5.3.4)計算r2=(((d2+k2)mod16)+r3)mod16;
5.3.5)計算r1=(((d1+k1)mod16)+r2)mod16。
5.3.6)將上述各個結(jié)果合并計算得到:
nres=r1×164+r2×163+r3×162+r4×16+r5
根據(jù)下式計算脫敏后的出生日期相對于基準(zhǔn)日期的天數(shù)偏移量:
nresday=nres+32768×2
6)特別的當(dāng)nflag>31時,令nresday=nintervalday,即當(dāng)?shù)谝婚g隔天數(shù)大于1015715天時(1015715為31倍的32768天),則對該待脫敏出生日期不進(jìn)行變換,直接將該待脫敏的出生日期記為脫敏后的出生日期作為脫敏結(jié)果。
7)根據(jù)得到的脫敏后的出生日期相對于基準(zhǔn)日期的天數(shù)偏移量nresday,根據(jù)以下公式得到脫敏后的出生日期resdate:
resdate=refdate-nresday,及從基準(zhǔn)日期往前數(shù)nresday天,得到脫敏后的出生日期。
在獲得脫敏后的出生日期后,還可以將脫敏后的出生日期還原成脫敏前的出生日期,其方法流程圖見圖3,具體步驟如下所示:
s300,獲取脫敏后的出生日期和基準(zhǔn)日期,基準(zhǔn)日期晚于脫敏后的出生日期。
該脫敏日期與脫敏過程中的基準(zhǔn)日期應(yīng)保持一致,即該基準(zhǔn)日期同樣晚于脫敏后的出生日期,且早于或等于當(dāng)前日期。
s310,根據(jù)脫敏后的出生日期與基準(zhǔn)日期之間的第三間隔天數(shù),從預(yù)存的多級區(qū)間段中,確定脫敏后的出生日期所屬的第二區(qū)間段。
其中第三間隔天數(shù)在此代表脫敏后的出生日期與基準(zhǔn)日期之間的差值,第二區(qū)間段僅僅是泛指該脫敏后的出生日期所在的區(qū)間,并不是具體哪個區(qū)間。
s320,按照預(yù)設(shè)的還原算法,確定該脫敏后的出生日期在所屬的第二區(qū)間段中對應(yīng)的脫敏前的出生日期。
在步驟s320中,具體確定步驟包括如下,其流程圖如圖4所示:
s400,按照預(yù)設(shè)的還原算法,確定在該脫敏后的出生日期所屬的第二區(qū)間段中,脫敏前的出生日期相對基準(zhǔn)日期的天數(shù)偏移量。
s410,根據(jù)基準(zhǔn)日期,以及脫敏前的出生日期相對基準(zhǔn)日期的天數(shù)偏移量,確定脫敏前的出生日期。
其中天數(shù)偏移量,是指脫敏前的出生日期早于基準(zhǔn)日期的具體天數(shù)。確定該具體天數(shù)的方法如下:
(1)根據(jù)第三間隔天數(shù)、和在第二區(qū)間段之前的區(qū)間段的區(qū)間長度,確定第四間隔天數(shù);其中,第四間隔天數(shù)為第三間隔天數(shù)減去在第二區(qū)間段之前的各級區(qū)間段的區(qū)間長度之后的數(shù);在第二區(qū)間段之前的區(qū)間段是指對應(yīng)的間隔天數(shù)小于第三間隔天數(shù)的區(qū)間段。
(2)根據(jù)第四間隔天數(shù)和選擇的一個干擾值,生成脫敏前的出生日期相對基準(zhǔn)日期的天數(shù)偏移量;其中,這一個干擾值為大于或等于0的整數(shù)。
對每一個脫敏后的出生日期進(jìn)行還原時,干擾值與得到該脫敏后的出生日期的脫敏過程中的干擾值是同一個值,比如,待脫敏的出生日期a在脫敏后變?yōu)槿掌赽,在此過程中,干擾值為c,則在日期b還原為出生日期a的過程中,干擾值也為c?;蛘撸慌螌σ唤M待脫敏的出生日期進(jìn)行脫敏處理得到對應(yīng)的一組脫敏后的出生日期,在此過程中的干擾值為a,則在對這一組脫敏后的出生日期進(jìn)行還原時,選用的干擾值也應(yīng)該為a。
在第(2)步中,具體包括:
將第四間隔天數(shù)對應(yīng)的數(shù)值在目標(biāo)進(jìn)制下的每一位上的值,與該干擾值在該目標(biāo)進(jìn)制下的相應(yīng)位上的值進(jìn)行差運(yùn)算;
將差運(yùn)算后的值與目標(biāo)進(jìn)制對應(yīng)的進(jìn)制數(shù)進(jìn)行摸mod運(yùn)算,得到天數(shù)偏移量在相應(yīng)位上的值;
將得到的天數(shù)偏移量在目標(biāo)進(jìn)制下的各個位上的值進(jìn)行整合后,加上在第二區(qū)間段之前的各級區(qū)間段的區(qū)間長度,得到目標(biāo)進(jìn)制下的天數(shù)偏移量對應(yīng)的數(shù)值。
其中,對目標(biāo)進(jìn)制和模運(yùn)算的限定有以下規(guī)定:
當(dāng)脫敏后的出生日期所屬的第二區(qū)間段是多級區(qū)間段的第一級區(qū)間段或第二級區(qū)間段時,上述目標(biāo)進(jìn)制為八進(jìn)制,模運(yùn)算為模八運(yùn)算。
當(dāng)脫敏后的出生日期所屬的第二區(qū)間段是多級區(qū)間段的第三級區(qū)間段時,上述目標(biāo)進(jìn)制為十六進(jìn)制,模運(yùn)算為模十六運(yùn)算。
其中,第一級區(qū)間段對應(yīng)的第三間隔天數(shù)的范圍是大于或等于0且小于32768天,第二級區(qū)間段對應(yīng)的第三間隔天數(shù)的范圍是大于或等于32768天且小于65536天,第三級區(qū)間段對應(yīng)的第三間隔天數(shù)的范圍是大于或等于65536天且小于1048576天。
一種較佳的實(shí)施方式,在本發(fā)明實(shí)施例1中提出,出生日期脫還原法的主要過程描述如下
1)檢查脫敏后的出生日期(resdate)、基準(zhǔn)日期(refdate)和干擾值(key)的合法性,該合法性指該已出生日期早于基準(zhǔn)日期,基準(zhǔn)日期不晚于當(dāng)天日期,key的值為大于或等于0的整數(shù)。
2)計算脫后敏的出生日期與基準(zhǔn)日期的間隔天數(shù),并記為第三間隔天數(shù)(nintervalday),nitervalday=refdate-oridate,顯然nintervalday的值大于等于0。
3)設(shè)置區(qū)間標(biāo)志為nflag=nintervalday÷32768,nflag取整數(shù)部分。
當(dāng)nflag=0時,則第三間隔天數(shù)大于或等于0天且小于32768天,將脫敏后的出生日期所屬的第二區(qū)間段記為第一級區(qū)間段;
當(dāng)nflag=1時,則第三隔天數(shù)大于或等于32768天且小于65536天,將脫敏后的出生日期所屬的第二區(qū)間段記為第二個區(qū)間;
當(dāng)1<nflag<32,且nflag取整數(shù)時,則第三間隔天數(shù)大于或等于65536天且小于1048576天,將脫敏后的出生日期所屬的第二區(qū)間段記為第三個區(qū)間。
4)如果nflag等于0或者1時,執(zhí)行以下步驟:
4.1)計算第四間隔天數(shù)nintervalday’
nintervalday’=nintervalday-32768×nflag,即第四間隔天數(shù)取的是第三間隔天數(shù)減去第二區(qū)間段之前的各級區(qū)間段的區(qū)間長度之后的數(shù),特別的,當(dāng)nflag=0時,即脫敏后出生日期所屬的第三區(qū)間在第一個區(qū)間內(nèi)時,第四間隔天數(shù)等于第三間隔天數(shù)。
比如,第三間隔天數(shù)為36000天時,則nflag=1,則第四間隔天數(shù)為3232天;當(dāng)?shù)谌g隔天數(shù)為30000天時,則nflag=0,則第三間隔天數(shù)也為30000天。
4.2)將nintervalday’和key轉(zhuǎn)化為目標(biāo)進(jìn)制數(shù),此處以八進(jìn)制數(shù)進(jìn)行說明,分別用r1r2r3r4r5、k1k2k3k4k5表示,用ri表示r1~r5,用ki表示k1~k5,(1≤i≤5),其中選取八進(jìn)制,是因為32768恰好為215,其換成八進(jìn)制為100000,小于這個數(shù)的八進(jìn)制數(shù)最大即為77777,恰好是五位八進(jìn)制數(shù),其中r1r2r3r4r5和k1k2k3k4k5表示小于八進(jìn)制數(shù)77777的五位八進(jìn)制數(shù),當(dāng)位數(shù)不夠五位時,在高位前補(bǔ)0,當(dāng)干擾值key的取值大于五位的八進(jìn)制數(shù)時,從低位至高位依次取前五位八進(jìn)制數(shù),將超過第五位的數(shù)剔除,比如當(dāng)key的值為六位八進(jìn)制數(shù)123456,則將key的值記為23456。下面將進(jìn)行脫敏前的出生日期相對于基準(zhǔn)日期的天數(shù)偏移量的計算過程:
4.3)按照以下規(guī)則逐位進(jìn)行目標(biāo)進(jìn)制運(yùn)算,其中進(jìn)行模八運(yùn)算,是為了使根據(jù)八進(jìn)制數(shù)計算得到的數(shù)還是八進(jìn)制數(shù):
具體過程為:將該第四間隔天數(shù)對應(yīng)的數(shù)值在八進(jìn)制下的每一位上的值,與干擾值在該八進(jìn)制下的相應(yīng)位上的值進(jìn)行差運(yùn)算。
將該差運(yùn)算后的值與八進(jìn)制對應(yīng)的進(jìn)制數(shù)進(jìn)行模mod運(yùn)算,得到天數(shù)偏移量在相應(yīng)位上的值,具體運(yùn)算過程如下:
4.3.1)計算d5=(r5-k5)mod8,mod8表示模八運(yùn)算;
4.3.2)計算d4=(((r4-r5)mod8)-k4)mod8;
4.3.3)計算d3=(((r3-r4)mod8)-k3)mod8;
4.3.4)計算d2=(((r2-r3)mod8)-k2)mod8;
4.3.5)計算d1=(((r1-r2)mod8)-k1)mod8。
將該差運(yùn)算后的值與八進(jìn)制對應(yīng)的進(jìn)制數(shù)進(jìn)行模mod運(yùn)算,得到天數(shù)偏移量在相應(yīng)位上的值,d1d2d3d4d5,為了便于后續(xù)計算,將該八進(jìn)制數(shù)通過以下公式換算成十進(jìn)制數(shù),用nint表示,nint=d1×84+d2×83+d3×82+d4×8+d5;
根據(jù)下式計算脫敏前的出生日期相對于基準(zhǔn)日期的天數(shù)偏移量:
nnewintday=nint+32768×nflag。
5)當(dāng)1<nflag<32時,則第四間隔天數(shù)表示大于或等于65536天且小于1048576天,表示脫敏后出生日期所屬的第三區(qū)間為第三級區(qū)間。
5.1)令nflag=2,nintervalday’=nintervalday-32768×2;
5.2)將nintervalday’和(key×0x1f)轉(zhuǎn)換為十六進(jìn)制數(shù),因為32768×32=220,比該數(shù)小的數(shù)都小于最大的五位十六進(jìn)制數(shù);用rx1rx2rx3rx4rx5、k1k2k3k4k5表示第四間隔天數(shù)和干擾值,其中rxi和ki(1≤i≤5),滿足0x0≤rxi≤0xf和0x0≤ki≤0xf,其中rx1rx2rx3rx4rx5和k1k2k3k4k5表示小于五位十六進(jìn)制數(shù)fffff的五位十六進(jìn)制數(shù),當(dāng)位數(shù)不夠時,在高位前補(bǔ)0,當(dāng)干擾值key的取值大于五位的八進(jìn)制數(shù)時,從低位至高位依次取前五位八進(jìn)制數(shù),將超過第五位的數(shù)剔除,比如當(dāng)key的值為六位八進(jìn)制數(shù)123456,則將key的值記為23456。
5.3)按照以下規(guī)則逐位進(jìn)行模十六運(yùn)算:
5.3.1)計算d5=(rx5-k5)mod16,mod16表示模十六運(yùn)算;
5.3.2)計算d4=(((rx4-rx5)mod16)-k4)mod16;
5.3.3)計算d3=(((rx3-rx4)mod16)-k3)mod16;
5.3.4)計算d2=(((rx2-rx3)mod16)-k2)mod16;
5.3.5)計算d1=(((rx1-rx2)mod16)-k1)mod16。
5.3.6)將上述各個結(jié)果合并計算得到:
nint=d1×164+d2×163+d3×162+d4×16+d5
根據(jù)下式計算脫敏前的出生日期相對于基準(zhǔn)日期的天數(shù)偏移量:
nnewintday=nint+32768×2
6)特別的當(dāng)nflag>31時,令nnewintday=nintervalday,即當(dāng)?shù)谝婚g隔天數(shù)大于1015808天(1015808天為31倍的32768天)時,則對該脫敏后出生日期不進(jìn)行還原變換,直接將該脫敏后出生日期記為脫敏前的出生日期,并作為還原結(jié)果。
7)根據(jù)得到的脫敏前的出生日期相對于基準(zhǔn)日期的天數(shù)偏移量nnewintday,根據(jù)以下公式得到脫敏前的出生日期oridate:
oridate=refdate-nnewintday,及從基準(zhǔn)日期往前數(shù)nnewintday天,得到脫敏前的出生日期。
以下是上述出生日期的脫敏過程和還原過程中涉及到的模八運(yùn)算的可逆證明:
輸入:脫敏算法中nintervalday和key,分別用d1d2d3d4d5、k1k2k3k4k5表示,其中di和ki(1≤i≤5)表示各個數(shù)位上的數(shù)字,滿足0≤di≤7和0≤ki≤7(為八進(jìn)制數(shù));
輸出:nres
nres用八進(jìn)制數(shù)r1r2r3r4r5表示,其中ri(1≤i≤5)表示各個數(shù)位上的數(shù)字,滿足0≤ri≤7和0≤ki≤7
根據(jù)出生日期脫敏算法4.3)計算過程均采用八進(jìn)制運(yùn)算:
4.3.1)計算r5=(d5+k5)mod8,mod8表示模八運(yùn)算;
4.3.2)計算r4=(((d4+k4)mod8)+r5)mod8;
4.3.3)計算r3=(((d3+k3)mod8)+r4)mod8;
4.3.4)計算r2=(((d2+k2)mod8)+r3)mod8;
4.3.5)計算r1=(((d1+k1)mod8)+r2)mod8。
可以總結(jié)為(均采用八進(jìn)制數(shù)運(yùn)算):
而在出生日期還原算法4.3)中,有:
4.3.1)計算d5=(r5-k5)mod8,mod8表示模八運(yùn)算;
4.3.2)計算d4=(((r4-r5)mod8)-k4)mod8;
4.3.3)計算d3=(((r3-r4)mod8)-k3)mod8;
4.3.4)計算d2=(((r2-r3)mod8)-k2)mod8;
4.3.5)計算d1=(((r1-r2)mod8)-k1)mod8。
同樣可以總結(jié)為:
當(dāng)i=5時,
d5=(r5-k5)mod8
和當(dāng)0<i<5時(均采用八進(jìn)制運(yùn)算):
di=(((ri-ri+1)mod8)-ki)mod8
=(ri-ri+1-ki)mod8(**)
將(**)式代入(*)式,則有:
因為0≤di≤7,所以(***)式證明了該算法是可逆的。
出生日期的脫敏過程和還原過程中涉及到的模十六運(yùn)算的可逆證明也可以根據(jù)上述方法得到,在此不再贅述。
下面以一實(shí)時例,具體闡述脫敏一個出生日期的方法:
1)獲取待脫敏的出生日期2000.04.01日,基準(zhǔn)日期2017.04.01日。
2)根據(jù)待脫敏的出生日期和基準(zhǔn)日期之間的第一間隔天數(shù)6209天,因為6209<32767,確定該待脫敏的出生日期所屬的區(qū)間段為第一個區(qū)間,第二間隔天數(shù)等于第一間隔天數(shù)6209天,將6209換成八進(jìn)制數(shù)為14101,該第二間隔天數(shù)為一個五位八進(jìn)制數(shù),任取一個五位八進(jìn)制的干擾值52733,然后按照以下公式計算天數(shù)偏移量對應(yīng)的數(shù)值r1r2r3r4r5的每一位值:
r5=(1+3)mod8=4;
r4=(((0+3)mod8)+4)mod8=7;
r3=(((1+7)mod8)+7)mod8=7;
r2=(((4+2)mod8)+7)mod8=5;
r1=(((1+5)mod8)+5)mod8=3。
3)將得到的r1r2r3r4r5=35774轉(zhuǎn)換成十進(jìn)制數(shù):
nres=3×84+5×83+7×82+7×8+4=15356;則脫敏后的出生日期相對于基準(zhǔn)日期的天數(shù)偏移量nresday為15356+0=15356天。
4)脫敏后的出生日期resdate等于從2017.04.01開始往前數(shù)15356天,得到脫敏后的出生日期為1975年3月17日。
下面是對上述脫敏后的出生日期進(jìn)行還原得到脫敏前的出生日期的具體方法:
1)獲取脫敏后的出生日期1975.03.17日,基準(zhǔn)日期2017.04.01日。
2)根據(jù)脫敏后的出生日期與基準(zhǔn)日期之間的第一間隔天數(shù)15356天,因為15356<32767,確定該脫敏后的,出生日期所屬的區(qū)間段為第一個區(qū)間,第二間隔天數(shù)等于第一間隔天數(shù)15356,將15356換成八進(jìn)制數(shù)為35774,該第二間隔天數(shù)為一個五位八進(jìn)制數(shù),取脫敏過程中的干擾值52733,然后按照以下公式計算天數(shù)偏移量對應(yīng)的數(shù)值r1r2r3r4r5的每一位值:
d5=(4-3)mod8=1;
d4=(((7-4)mod8)-3)mod8=0;
d3=(((7-7)mod8)-7)mod8=1;
d2=(((5-7)mod8)-2)mod8=4;
d1=(((3-5)mod8)-5)mod8=1;
3)將得到的d1d2d3d4d5=14101轉(zhuǎn)換成十進(jìn)制數(shù):
nres=1×84+4×83+1×82+0×8+1=6209;則脫敏前的出生日期相對于基準(zhǔn)日期的天數(shù)偏移量nresday為6209+0=6209天。
4)脫敏前的出生日期resdate等于從2017.04.01開始往前數(shù)6209天,得到還原后的出生日期為2000年4月1日。
實(shí)施例2
本發(fā)明實(shí)施例2提供了一種出生日期數(shù)據(jù)的脫敏裝置,如圖5所示,包括:獲取模塊500,執(zhí)行模塊501和確定模塊502。
其中,獲取模塊500,用于獲取待脫敏的出生日期和基準(zhǔn)日期,該基準(zhǔn)日期晚于待脫敏日期、且早于或等于當(dāng)前日期。
執(zhí)行模塊501,用于根據(jù)待脫敏的出生日期與基準(zhǔn)日期之間的第一間隔天數(shù),從預(yù)存的多級區(qū)間段中,確定待脫敏的出生日期所屬的第一區(qū)間段,其中,不同的區(qū)間段對應(yīng)不同的年齡范圍,同一區(qū)間段對應(yīng)相同的年齡范圍。
確定模塊502,按照預(yù)設(shè)的脫敏算法,確定該待脫敏的出生日期在所屬的第一區(qū)間段中對應(yīng)的脫敏后的出生日期。
其中,確定模塊502,具體用于按照預(yù)設(shè)的脫敏算法,確定在該待脫敏的出生日期所屬的第一區(qū)間段中,脫敏后的出生日期相對基準(zhǔn)日期的天數(shù)偏移量。根據(jù)基準(zhǔn)日期,以及脫敏后的出生日期相對基準(zhǔn)日期的天數(shù)偏移量,確定脫敏后的出生日期。
確定模塊502,具體用于任取一個干擾值,所述干擾值為大于或等于0的任意整數(shù);以及根據(jù)第一間隔天數(shù)、和在第一區(qū)間段之前的區(qū)間段的區(qū)間長度,確定第二間隔天數(shù);其中,第二間隔天數(shù)為第一間隔天數(shù)減去第一區(qū)間段之前的各級區(qū)間段的區(qū)間長度之后的數(shù);在第一區(qū)間段之前的區(qū)間段是指對應(yīng)的區(qū)間天數(shù)小于第一間隔天數(shù)的區(qū)間段;根據(jù)第二間隔天數(shù)和上述干擾值,生成脫敏后的出生日期相對基準(zhǔn)日期的天數(shù)偏移量。
確定模塊502,具體用于將第二間隔天數(shù)對應(yīng)的數(shù)值在目標(biāo)進(jìn)制下的每一位上的值,與干擾值在該目標(biāo)進(jìn)制下的相應(yīng)位上的值進(jìn)行和運(yùn)算;將和運(yùn)算后的值與目標(biāo)進(jìn)制對應(yīng)的進(jìn)制數(shù)進(jìn)行模運(yùn)算,得到天數(shù)偏移量在相應(yīng)位上的值;將得到的天數(shù)便宜量在目標(biāo)進(jìn)制下的各個位上的值進(jìn)行整合后,加上在第一區(qū)間段之前的各級區(qū)間段的區(qū)間長度,得到目標(biāo)進(jìn)制下的天數(shù)偏移量對應(yīng)的數(shù)值。
其中,確定模塊502將根據(jù)以下規(guī)定對目標(biāo)進(jìn)制和模運(yùn)算進(jìn)行限定:
當(dāng)待脫敏的出生日期所屬的第一區(qū)間段是多級區(qū)間段的第一級區(qū)間段或第二級區(qū)間段時,上述目標(biāo)進(jìn)制為八進(jìn)制,模運(yùn)算為模八運(yùn)算。
當(dāng)待脫敏的出生日期所屬的第一區(qū)間段是多級區(qū)間段的第三級區(qū)間段時,上述目標(biāo)進(jìn)制為十六進(jìn)制,模運(yùn)算為模十六運(yùn)算。
其中,第一級區(qū)間段對應(yīng)的第一間隔天數(shù)的范圍是大于或等于0且小于或等于32768天,第二級區(qū)間段對應(yīng)的第一間隔天數(shù)的范圍是大于32768天且小于65536天,第三級區(qū)間段對應(yīng)的第一間隔天數(shù)的范圍是大于或等于65536天且小于1048576天。
其中,確定模塊502執(zhí)行脫敏算法的過程,詳見實(shí)施例1中提到的脫敏算法的過程,在此不再贅述。
獲取模塊500,還用于獲取脫敏后的出生日期和基準(zhǔn)日期。
執(zhí)行模塊501,還用于根據(jù)脫敏后的出生日期與基準(zhǔn)日期之間的第三間隔天數(shù),從預(yù)存的多級區(qū)間段中,確定脫敏后的出生日期所屬的第三區(qū)間長度。
確定模塊502,按照預(yù)設(shè)的還原算法,確定該脫敏后的出生日期在所屬的第二區(qū)間段中對應(yīng)的脫敏前的出生日期。
確定模塊502,具體用于按照預(yù)設(shè)的還原算法,確定在該脫敏后的出生日期所屬的第二區(qū)間段中,脫敏前的出生日期相對基準(zhǔn)日的天數(shù)便宜量;根據(jù)基準(zhǔn)日期,以及脫敏前的出生日期相對基準(zhǔn)日期的天數(shù)偏移量,確定脫敏前的出生日期。
確定模塊502,具體用于根據(jù)第三間隔天數(shù)、和在第二區(qū)間段之前的區(qū)間段的區(qū)間長度,確定第四間隔天數(shù);其中,第四間隔天數(shù)為第三間隔天數(shù)減去在第三區(qū)間之前的區(qū)間段是指對應(yīng)的間隔天數(shù)小于第三間隔天數(shù)的區(qū)間段;根據(jù)第四間隔天數(shù)和選擇的一個干擾值,生成脫敏前的出生日期相對基準(zhǔn)日期的天數(shù)偏移量;其中,上述一個干擾值為大于或等于0的整數(shù)。
確定模塊502,具體用于將第四間隔天數(shù)對應(yīng)的數(shù)值在目標(biāo)進(jìn)制下的每一位上的值,與干擾值在該目標(biāo)進(jìn)制下的相應(yīng)位上的值進(jìn)行差運(yùn)算;將差運(yùn)算后的值與目標(biāo)進(jìn)制對應(yīng)的進(jìn)制數(shù)進(jìn)行摸mod運(yùn)算,得到天數(shù)偏移量在相應(yīng)位上的值;將得到的天數(shù)偏移量在目標(biāo)進(jìn)制下的各個位上的值進(jìn)行整合后,加上在第二區(qū)間段之前的各級區(qū)間段的區(qū)間長度,得到目標(biāo)進(jìn)制下的天數(shù)偏移量對應(yīng)的數(shù)值。
確定模塊502對每一個脫敏后的出生日期進(jìn)行還原時,干擾值與得到該脫敏后的出生日期的脫敏過程中的干擾值是同一個值,比如,待脫敏的出生日期a在脫敏后變?yōu)槿掌赽,在此過程中,干擾值為c,則在日期b還原為出生日期a的過程中,干擾值也為c?;蛘?,同一批次對一組待脫敏的出生日期進(jìn)行脫敏處理得到對應(yīng)的一組脫敏后的出生日期,在此過程中的干擾值為a,則在對這一組脫敏后的出生日期進(jìn)行還原時,選用的干擾值也應(yīng)該為a。
其中,確定模塊502將根據(jù)以下規(guī)定對目標(biāo)進(jìn)制和模運(yùn)算進(jìn)行限定:
當(dāng)脫敏后的出生日期所屬的第二區(qū)間段是多級區(qū)間段的第一級區(qū)間段或第二級區(qū)間段時,上述目標(biāo)進(jìn)制為八進(jìn)制,模運(yùn)算為模八運(yùn)算。
當(dāng)脫敏后的出生日期所屬的第二區(qū)間段是多級區(qū)間段的第三級區(qū)間段時,上述目標(biāo)進(jìn)制為十六進(jìn)制,模運(yùn)算為模十六運(yùn)算。
其中,第一級區(qū)間段對應(yīng)的第三間隔天數(shù)的范圍是大于或等于0且小于32768天,第二級區(qū)間段對應(yīng)的第三間隔天數(shù)的范圍是大于或等于32768天且小于65536天,第三級區(qū)間段對應(yīng)的第三間隔天數(shù)的范圍是大于或等于65536天且小于1048576天。
其中,確定模塊502執(zhí)行還原算法的過程,詳見實(shí)施例1中提到的還原算法的過程,在此不再贅述。
實(shí)施例3
本發(fā)明實(shí)施例3提供了一種出生日期數(shù)據(jù)的脫敏方法,其流程圖見圖6所示,具體步驟如下:
s600,第一設(shè)備接收第二設(shè)備發(fā)送的待脫敏的出生日期集合和基準(zhǔn)日期,該待脫敏的出生日期集合中包含多個待脫敏的出生日期,基準(zhǔn)日期晚于各個待脫敏的出生日期,且早于或等于當(dāng)前日期。
其中第一設(shè)備和第二設(shè)備為計算機(jī)、平板或者其他智能設(shè)備。
s610,根據(jù)每一個待脫敏的出生日期與基準(zhǔn)日期之間的第一間隔天數(shù),從預(yù)存的多級區(qū)間段中,確定該待脫敏的出生日期所屬的第一區(qū)間段,按照預(yù)設(shè)的脫敏算法,確定該待脫敏的出生日期在所屬的第一區(qū)間段中對應(yīng)的脫敏后的出生日期。
s620,將待脫敏的出生日期集合中的每一個待脫敏的出生日期對應(yīng)的脫敏后的出生日期發(fā)送給所述第二設(shè)備。
在步驟s610中,具體包括以下步驟:
按照預(yù)設(shè)的脫敏算法,確定在該待脫敏的出生日期所屬的第一區(qū)間段中,脫敏后的出生日期相對基準(zhǔn)日期的天數(shù)偏移量。
根據(jù)基準(zhǔn)日期,以及脫敏后的出生日期相對基準(zhǔn)日期的天數(shù)偏移量,確定脫敏后的出生日期。
其中,確定該天數(shù)偏移量,包括:
(1)任取一個干擾值,該干擾值為大于或等于0的任意整數(shù)。
(2)根據(jù)第一間隔天數(shù)、和在第一區(qū)間段之前的區(qū)間段的區(qū)間長度,確定第二間隔天數(shù);其中,第二間隔天數(shù)為第一間隔天數(shù)減去在第一區(qū)間段之前的各級區(qū)間段的區(qū)間長度之后的數(shù);在第一區(qū)間段之前的區(qū)間段是指對應(yīng)的間隔天數(shù)小于第一間隔天數(shù)的區(qū)間段;
(3)根據(jù)第二間隔天數(shù)和選擇的干擾值,生成脫敏后的出生日期相對基準(zhǔn)日期的天數(shù)偏移量。
在步驟(3)中,具體包括:
將第二間隔天數(shù)對應(yīng)的數(shù)值在目標(biāo)進(jìn)制下的每一位上的值,與干擾值在該目標(biāo)進(jìn)制下的相應(yīng)位上的值進(jìn)行和運(yùn)算。
將和運(yùn)算后的值與目標(biāo)進(jìn)制對應(yīng)的進(jìn)制數(shù)進(jìn)行模mod運(yùn)算,得到天數(shù)偏移量在相應(yīng)位上的值。
將得到的天數(shù)偏移量在目標(biāo)進(jìn)制下的各個位上的值進(jìn)行整合后,加上在第一區(qū)間段之前的各級區(qū)間段的區(qū)間長度,得到目標(biāo)進(jìn)制下的天數(shù)偏移量對應(yīng)的數(shù)值。
其中,對目標(biāo)進(jìn)制和模運(yùn)算的限定有以下規(guī)定:
當(dāng)待脫敏的出生日期所屬的第一區(qū)間段是多級區(qū)間段的第一級區(qū)間段或第二級區(qū)間段時,上述目標(biāo)進(jìn)制為八進(jìn)制,模運(yùn)算為模八運(yùn)算。
當(dāng)待脫敏的出生日期所屬的第一區(qū)間段是多級區(qū)間段的第三級區(qū)間段時,上述目標(biāo)進(jìn)制為十六進(jìn)制,模運(yùn)算為模十六運(yùn)算。
其中,第一級區(qū)間段對應(yīng)的第一間隔天數(shù)的范圍是大于或等于0且小于或等于32768天,第二級區(qū)間段對應(yīng)的第一間隔天數(shù)的范圍是大于32768天且小于65536天,第三級區(qū)間段對應(yīng)的第一間隔天數(shù)的范圍是大于或等于65536天且小于1048576天。
其中,具體執(zhí)行脫敏算法的過程,詳見實(shí)施例1中提到的脫敏算法的過程,在此不再贅述。
對待脫敏的出生日期進(jìn)行脫敏后,還包括對脫敏后的出生日期進(jìn)行還原,其流程圖如圖7所示,具體步驟如下:
s700,第一設(shè)備接收第二設(shè)備發(fā)送的脫敏后的出生日期集合和基準(zhǔn)日期,該脫敏后的出生日期集合中包含多個脫敏后的出生日期,基準(zhǔn)日期晚于各個脫敏后的出生日期、且早于或等于當(dāng)前日期。
s710,根據(jù)每一個脫敏后的出生日期與基準(zhǔn)日期之間的第三間隔天數(shù),從預(yù)存的多級區(qū)間段中,確定該脫敏后的出生日期所屬的第二區(qū)間段,按照預(yù)設(shè)的還原算法,確定該脫敏后的出生日期在所屬的第二區(qū)間段中對應(yīng)的脫敏前的出生日期。
s720,將脫敏后的出生日期集合中的每一個脫敏后的出生日期對應(yīng)的脫敏前的出生日期發(fā)送給第二設(shè)備。
在步驟s710中,具體包括以下步驟:
按照預(yù)設(shè)的還原算法,確定在該脫敏后的出生日期所屬的第二區(qū)間段中,脫敏前的出生日期相對基準(zhǔn)日期的天數(shù)偏移量;
根據(jù)基準(zhǔn)日期,以及脫敏前的出生日期相對基準(zhǔn)日期的天數(shù)偏移量,確定脫敏前的出生日期。
其中,確定該天數(shù)偏移量,包括:
(1)根據(jù)第三間隔天數(shù)、和在第二區(qū)間段之前的區(qū)間段的區(qū)間長度,確定第四間隔天數(shù);其中,第四間隔天數(shù)為第三間隔天數(shù)減去在第二區(qū)間段之前的各級區(qū)間段的區(qū)間長度之后的數(shù);在第二區(qū)間段之前的區(qū)間段是指對應(yīng)的間隔天數(shù)小于所述第三間隔天數(shù)的區(qū)間段;
(2)根據(jù)第四間隔天數(shù)和選擇的一個干擾值,生成脫敏前的出生日期相對所述基準(zhǔn)日期的天數(shù)偏移量;其中,上述一個干擾值為大于或等于0的整數(shù)。
對每一個脫敏后的出生日期進(jìn)行還原時,干擾值與得到該脫敏后的出生日期的脫敏過程中的干擾值是同一個值,比如,待脫敏的出生日期a在脫敏后變?yōu)槿掌赽,在此過程中,干擾值為c,則在日期b還原為出生日期a的過程中,干擾值也為c?;蛘?,同一批次對一組待脫敏的出生日期進(jìn)行脫敏處理得到對應(yīng)的一組脫敏后的出生日期,在此過程中的干擾值為a,則在對這一組脫敏后的出生日期進(jìn)行還原時,選用的干擾值也應(yīng)該為a。
在步驟(2)中,具體包括:
將第四間隔天數(shù)對應(yīng)的數(shù)值在目標(biāo)進(jìn)制下的每一位上的值,與干擾值在該目標(biāo)進(jìn)制下的相應(yīng)位上的值進(jìn)行差運(yùn)算;
將差運(yùn)算后的值與目標(biāo)進(jìn)制對應(yīng)的進(jìn)制數(shù)進(jìn)行摸mod運(yùn)算,得到天數(shù)偏移量在所述相應(yīng)位上的值;
將得到的天數(shù)偏移量在所述目標(biāo)進(jìn)制下的各個位上的值進(jìn)行整合后,加上在第二區(qū)間段之前的各級區(qū)間段的區(qū)間長度,得到目標(biāo)進(jìn)制下的天數(shù)偏移量對應(yīng)的數(shù)值。
其中,對目標(biāo)進(jìn)制和模運(yùn)算的限定有以下規(guī)定:
當(dāng)脫敏后的出生日期所屬的第二區(qū)間段是多級區(qū)間段的第一級區(qū)間段或第二級區(qū)間段時,上述目標(biāo)進(jìn)制為八進(jìn)制,模運(yùn)算為模八運(yùn)算。
當(dāng)脫敏后的出生日期所屬的第二區(qū)間段是多級區(qū)間段的第三級區(qū)間段時,上述目標(biāo)進(jìn)制為十六進(jìn)制,模運(yùn)算為模十六運(yùn)算。
其中,第一級區(qū)間段對應(yīng)的第三間隔天數(shù)的范圍是大于或等于0且小于32768天,第二級區(qū)間段對應(yīng)的第三間隔天數(shù)的范圍是大于或等于32768天且小于65536天,第三級區(qū)間段對應(yīng)的第三間隔天數(shù)的范圍是大于或等于65536天且小于1048576天。
其中,具體執(zhí)行還原算法的過程,詳見實(shí)施例1中提到的還原算法的過程,在此不再贅述。
基于上述分析可知,與相關(guān)技術(shù)中的出生日期數(shù)據(jù)的脫敏方法相比,可以將待脫敏的出生日期脫敏成同區(qū)間段的出生日期,從而使得脫敏后的出生日期仍然在原有的出生日期所屬的年齡范圍,即保留了待脫敏的出生日期的原有特定年齡范圍不變,既保護(hù)可客戶的隱私,又便于后續(xù)數(shù)據(jù)分析使用。
本發(fā)明實(shí)施例所提供的進(jìn)行出生日期數(shù)據(jù)的脫敏方法及裝置的計算機(jī)程序產(chǎn)品,包括存儲了程序代碼的計算機(jī)可讀存儲介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實(shí)施例中所述的方法,具體實(shí)現(xiàn)可參見方法實(shí)施例,在此不再贅述。
本發(fā)明實(shí)施例所提供的出生日期的脫敏的裝置可以為設(shè)備上的特定硬件或者安裝于設(shè)備上的軟件或固件等。本發(fā)明實(shí)施例所提供的裝置,其實(shí)現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實(shí)施例相同,為簡要描述,裝置實(shí)施例部分未提及之處,可參考前述方法實(shí)施例中相應(yīng)內(nèi)容。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,前述描述的系統(tǒng)、裝置和單元的具體工作過程,均可以參考上述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
在本發(fā)明所提供的實(shí)施例中,應(yīng)該理解到,所揭露裝置和方法,可以通過其它的方式實(shí)現(xiàn)。以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,又例如,多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明提供的實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。
所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋,此外,術(shù)語“第一”、“第二”、“第三”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。
最后應(yīng)說明的是:以上所述實(shí)施例,僅為本發(fā)明的具體實(shí)施方式,用以說明本發(fā)明的技術(shù)方案,而非對其限制,本發(fā)明的保護(hù)范圍并不局限于此,盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),其依然可以對前述實(shí)施例所記載的技術(shù)方案進(jìn)行修改或可輕易想到變化,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改、變化或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例技術(shù)方案的精神和范圍。都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。