欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種二維碼的防偽驗(yàn)證方法與流程

文檔序號(hào):12819601閱讀:591來源:國知局
一種二維碼的防偽驗(yàn)證方法與流程

本申請(qǐng)是申請(qǐng)日為:2014年10月24日、申請(qǐng)?zhí)枮椋?014105779765、名稱為:一種二維碼的生成方法及其應(yīng)用的分案申請(qǐng)。

本發(fā)明涉及二維碼防偽技術(shù)領(lǐng)域,具體為一種二維碼的防偽驗(yàn)證方法。



背景技術(shù):

目前,基于二維碼的防偽手段較多采用“掃描+輸入”的方式:下載指定的手機(jī)客戶端并安裝,通過手機(jī)客戶端“掃描”二維碼鏈接至相應(yīng)的網(wǎng)站驗(yàn)證界面,在已打開的驗(yàn)證界面中“輸入”驗(yàn)證碼,再由服務(wù)器完成驗(yàn)證碼真?zhèn)蔚尿?yàn)證工作,并將驗(yàn)證結(jié)果信息返回給客戶端,完成對(duì)產(chǎn)品真?zhèn)蔚尿?yàn)證。該防偽手段有其局限性:

1、通過一個(gè)驗(yàn)證碼驗(yàn)證產(chǎn)品的真?zhèn)危椒▎我?,防偽手段簡單?/p>

2、需要下載指定的手機(jī)客戶端并安裝,且驗(yàn)證碼需要消費(fèi)者手動(dòng)輸入,費(fèi)時(shí)費(fèi)力。

3、二維碼、驗(yàn)證碼容易被復(fù)制與重復(fù)使用。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明是為克服現(xiàn)有技術(shù)存在的不足之處,提出一種二維碼的防偽驗(yàn)證方法,能夠快速、穩(wěn)定的生成大量具有高防偽性、難以被仿造的二維碼,從而有效保證二維碼的唯一性,防止被復(fù)制或者重復(fù)使用。

本發(fā)明為解決技術(shù)問題采用如下技術(shù)方案:

本發(fā)明一種二維碼的防偽驗(yàn)證方法的特點(diǎn)是按如下步驟進(jìn)行:

步驟一、二維碼的生成:

步驟1、定義變量i,初始化i=1;

步驟2、生成溯源碼;

步驟2.1、利用式(1)獲取溯源碼的區(qū)間長度rl;

式(1)中,l表示所述溯源碼的長度;n表示生成所述溯源碼的個(gè)數(shù),rmax表示隨機(jī)函數(shù)rand()的最大值;

步驟2.2、利用式(2)生成第i個(gè)溯源碼ri:

ri=(i-1)×rl+rand(rl)1≤i≤n(2)

步驟3、生成前綴碼;

設(shè)置訪問網(wǎng)址url和自定義參數(shù),由所述訪問網(wǎng)址url和自定義參數(shù)構(gòu)成所述前綴碼;

步驟4、生成y位驗(yàn)證碼;

步驟4.1、設(shè)置一維數(shù)組arr[];

所述一維數(shù)組arr[]的元素是由字母和數(shù)字組成,定義所述一維數(shù)組arr[]的長度為l;

步驟4.2、利用隨機(jī)函數(shù)rand(l)生成一個(gè)隨機(jī)數(shù)m;由所述隨機(jī)數(shù)m獲得所述一維數(shù)組arr[]中第m-1個(gè)元素arr[m-1];1≤m≤l;

步驟4.3、重復(fù)執(zhí)行y次步驟4.2,從而獲得第i個(gè)溯源碼ri對(duì)應(yīng)的y位驗(yàn)證碼;

步驟5、將所述第i個(gè)溯源碼ri、前綴碼和y位驗(yàn)證碼存入防偽數(shù)據(jù)庫中,并將所述第i個(gè)溯源碼ri和前綴碼進(jìn)行合并后利用條碼生成器生成第i個(gè)初始二維碼;將所述y位驗(yàn)證碼嵌入所述第i個(gè)初始二維碼的中間位置,從而形成第i個(gè)二維碼;

步驟6、將i+1賦值給i并返回步驟2.2執(zhí)行,直到獲得n個(gè)二維碼;

步驟二、初步判斷所述待驗(yàn)證二維碼的真?zhèn)危?/p>

判斷所述待驗(yàn)證二維碼的中間位置是否包含待檢驗(yàn)驗(yàn)證碼;若不包含,則表示待驗(yàn)證二維碼為偽碼,否則對(duì)待驗(yàn)證二維碼進(jìn)行掃描,獲得待驗(yàn)證二維碼的掃描結(jié)果,判斷所述掃描結(jié)果是否包含所述訪問網(wǎng)址url,若沒有包含,則表示所述待驗(yàn)證二維碼為偽碼;否則,讀取所述掃描結(jié)果中的待驗(yàn)證溯源碼并執(zhí)行步驟三;

步驟三、獲得掃描時(shí)間和掃描地點(diǎn):

根據(jù)所述訪問網(wǎng)址url跳轉(zhuǎn)到相應(yīng)的防偽網(wǎng)站,利用所述防偽網(wǎng)站提供的查詢功能獲得掃描時(shí)間和由經(jīng)緯度信息構(gòu)成的掃描地點(diǎn);并從待驗(yàn)證二維碼中提取待驗(yàn)證溯源碼;由所述掃描時(shí)間、掃描地點(diǎn)和待驗(yàn)證溯源碼形成一條掃碼記錄并存入掃碼數(shù)據(jù)庫中;

步驟四、判斷所述待驗(yàn)證溯源碼的真?zhèn)危?/p>

將所述待驗(yàn)證溯源碼與所述防偽數(shù)據(jù)庫中的溯源碼進(jìn)行一一比對(duì),若比對(duì)成功,則獲得所述待驗(yàn)證溯源碼為溯源碼ri,并執(zhí)行步驟五,否則,表示所述待驗(yàn)證二維碼為偽碼;

步驟五、判斷所述待檢驗(yàn)驗(yàn)證碼的真?zhèn)危?/p>

根據(jù)所述溯源碼ri從所述防偽數(shù)據(jù)庫中獲得相應(yīng)的第i個(gè)y位驗(yàn)證碼;將所述待檢驗(yàn)驗(yàn)證碼與所述第i個(gè)y位驗(yàn)證碼進(jìn)行比對(duì),若比對(duì)成功,則表示所述待驗(yàn)證二維碼為真碼;否則,所述待驗(yàn)證二維碼為偽碼。

與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:

1、本發(fā)明通過利用隨機(jī)函數(shù)隨機(jī)生成碼的方法生成一種復(fù)雜的難以被仿造的二維碼,保證每一個(gè)生成的二維碼的唯一性和隨機(jī)性,增加了二維碼被解析的難度,解決了現(xiàn)有技術(shù)中二維碼容易被復(fù)制與重復(fù)使用的問題;

2、本發(fā)明通過掃碼工具掃描,利用url網(wǎng)址在手機(jī)瀏覽器或者其他內(nèi)置瀏覽器軟件中顯示,解決現(xiàn)有技術(shù)中需要用戶下載特定的手機(jī)客戶端并安裝的問題,不需要手動(dòng)輸入,提高了用戶體驗(yàn)度,增加便捷性;

3、本發(fā)明通過現(xiàn)有技術(shù)中相對(duì)穩(wěn)定的windows系統(tǒng)平臺(tái)和成熟的c#語言開發(fā)技術(shù),保證了生成二維碼的穩(wěn)定性和高效性,從而能夠快速穩(wěn)定的生成大數(shù)據(jù)量的二維碼;

4、本發(fā)明通過隨機(jī)函數(shù)隨機(jī)生成溯源碼、驗(yàn)證碼,溯源碼、驗(yàn)證碼都具有隨機(jī)性,沒有可循的規(guī)律,使得無法按照規(guī)律進(jìn)行大批量偽造,提高了二維碼的特殊性和難偽造性;

5、本發(fā)明通過掃描產(chǎn)品二維碼,層層與數(shù)據(jù)庫比對(duì)驗(yàn)證碼、前綴碼和溯源碼,多重驗(yàn)證,三重防偽保障,提高了產(chǎn)品二維碼的真實(shí)可靠性,防偽手段復(fù)雜、防偽系數(shù)高,解決了現(xiàn)有技術(shù)中通過一個(gè)驗(yàn)證碼驗(yàn)證產(chǎn)品的真?zhèn)巍⒎椒▎我?,防偽手段簡單的問題;

6、本發(fā)明通過記錄統(tǒng)計(jì)掃碼時(shí)間、次數(shù)和掃描地點(diǎn),能夠查詢掃碼產(chǎn)品的最終銷售信息,對(duì)于不法分子復(fù)制偽造正品的溯源碼,通過掃碼次數(shù)和計(jì)算不同掃碼地點(diǎn)之間的距離最大值,準(zhǔn)確嚴(yán)謹(jǐn)?shù)呐卸ǘS碼是否被復(fù)制偽造以及復(fù)制偽造嚴(yán)重程度,對(duì)復(fù)制偽造程度進(jìn)行風(fēng)險(xiǎn)等級(jí)預(yù)警,并合理的給出相應(yīng)的解決方案,提高基于二維碼的防偽可靠性。

附圖說明

圖1是本發(fā)明判定待驗(yàn)證二維碼防偽驗(yàn)證方法流程圖;

圖2是本發(fā)明利用二維碼的防偽驗(yàn)證方法流程圖。

具體實(shí)施方式

本實(shí)施例中,一種二維碼的生成方法是按如下步驟進(jìn)行:

步驟1、定義變量i,初始化i=1;

步驟2、批量生成溯源碼;

步驟2.1、利用式(1)獲取溯源碼的區(qū)間長度rl;

式(1)中,l表示溯源碼的長度;n表示生成溯源碼的個(gè)數(shù),rmax表示隨機(jī)函數(shù)rand()的最大值;

假設(shè)溯源碼的長度l=9,則溯源碼是從000000000到99999999之間產(chǎn)生,即可最多生成1000000000個(gè)溯源碼;假設(shè)產(chǎn)品需要生成10萬個(gè)溯源碼,即n=100000,則通過式(1)計(jì)算區(qū)間長度本實(shí)例是在windows環(huán)境下運(yùn)行,取隨機(jī)函數(shù)rand()的最大值rmax=32767,判斷取rl=10000,即相當(dāng)于從10000個(gè)溯源碼中隨機(jī)無規(guī)律的生成1個(gè)溯源碼;

步驟2.2、利用式(2)生成第i個(gè)溯源碼ri:

ri=(i-1)×rl+rand(rl)1≤i≤n(2)

本實(shí)施例中,當(dāng)i=1時(shí),假設(shè)rand(10000)=3472,則根據(jù)式(2)得第一個(gè)溯源碼r1=000003472,通過循環(huán)計(jì)算獲得n=100000個(gè)溯源碼{r1,r2,r3,...,ri,...,r100000},由于i的不同,生成的溯源碼也各不相同;產(chǎn)品偽造的溯源碼與溯源碼ri相同的概率為100000個(gè)溯源碼全部相同的概率為從而保障最終二維碼的防偽強(qiáng)度;

步驟3、生成前綴碼;

設(shè)置訪問網(wǎng)址url和自定義參數(shù),由訪問網(wǎng)址url和自定義參數(shù)構(gòu)成前綴碼;訪問網(wǎng)址url為掃描二維碼后對(duì)應(yīng)跳轉(zhuǎn)界面的網(wǎng)址,自定義參數(shù)是根據(jù)用戶需求添加參數(shù);如本實(shí)例中前綴碼為http://www.seediot.com/sy.html?m=48600147-500001145q,其中訪問網(wǎng)址url為http://www.seediot.com/sy.html,自定義參數(shù)由企業(yè)組織機(jī)構(gòu)代碼48600147-5、傳輸參數(shù)m、品種代碼00001和日期代碼145q組成,145q代表2014年5月26日;

步驟4、生成y位驗(yàn)證碼;

步驟4.1、設(shè)置一維數(shù)組arr[];

定義一維數(shù)組arr[]的長度為l;在本實(shí)例中,一維數(shù)組arr[]的元素是由二十六個(gè)大小寫字母和十位阿拉伯?dāng)?shù)字組成,則一維數(shù)組arr[]的長度l=62;將二十六個(gè)大小寫字母和十位阿拉伯?dāng)?shù)字按照順序依次存入一維數(shù)組arr[]中,即arr[0]=a,arr[1]=b,arr[2]=c,…,arr[60]=8,arr[61]=9;

步驟4.2、利用隨機(jī)函數(shù)rand(l)生成一個(gè)隨機(jī)數(shù)m;由隨機(jī)數(shù)m獲得一維數(shù)組arr[]中第m-1個(gè)元素arr[m-1];1≤m≤l;在本實(shí)例中,假設(shè)利用隨機(jī)函數(shù)rand(62)生成的隨機(jī)數(shù)m=3,則相應(yīng)的一維數(shù)組arr[m-1]表示一維數(shù)組arr[]中第2個(gè)元素arr[2]=c;

步驟4.3、重復(fù)執(zhí)行y次步驟4.2,從而獲得第i個(gè)溯源碼ri對(duì)應(yīng)的y位驗(yàn)證碼;本實(shí)例中取y為4,重復(fù)執(zhí)行4次步驟4.2,假設(shè)當(dāng)i=1時(shí)得到的四位驗(yàn)證碼為c2a1,與步驟2中生成的溯源碼r1相對(duì)應(yīng),進(jìn)一步增加防偽的強(qiáng)度;

步驟5、將第i個(gè)溯源碼ri、前綴碼和y位驗(yàn)證碼存入防偽數(shù)據(jù)庫中,并將第i個(gè)溯源碼ri和前綴碼進(jìn)行合并后利用條碼生成器生成第i個(gè)初始二維碼,將y位驗(yàn)證碼嵌入所述第i個(gè)初始二維碼的中間位置,從而形成第i個(gè)二維碼;本實(shí)施例中,假設(shè)當(dāng)i=1時(shí),第一個(gè)初始二維碼為http://www.seediot.com/sy.html?m=48600147-500001145q000003472,利用現(xiàn)有條碼生成器工具,將y位驗(yàn)證碼c2a1嵌入初始二維碼的中間位置,從而形成第i=1個(gè)二維碼;

步驟6、將i+1賦值給i并返回步驟2.2執(zhí)行,直到獲得n個(gè)二維碼,本實(shí)例中,需要循環(huán)執(zhí)行1000000次,最終得到需要的1000000個(gè)二維碼。

如圖1所示,一種二維碼的防偽驗(yàn)證方法是按如下步驟進(jìn)行:

步驟1、初步判斷待驗(yàn)證二維碼的真?zhèn)危?/p>

判斷待驗(yàn)證二維碼的中間位置是否包含待檢驗(yàn)驗(yàn)證碼;若不包含,則表示待驗(yàn)證二維碼為偽碼,否則對(duì)待驗(yàn)證二維碼進(jìn)行掃描,獲得待驗(yàn)證二維碼的掃描結(jié)果,判斷掃描結(jié)果是否包含訪問網(wǎng)址url,若沒有包含,則表示待驗(yàn)證二維碼為偽碼;否則,讀取掃描結(jié)果中的待驗(yàn)證溯源碼并執(zhí)行步驟2;

具體實(shí)施中,首先通過肉眼觀察待驗(yàn)證二維碼中間位置是否有四位的驗(yàn)證碼,將不包含四位驗(yàn)證碼的待驗(yàn)證二維碼判定為偽碼初步過濾,對(duì)包含四位驗(yàn)證碼的待驗(yàn)證二維碼進(jìn)行掃描,如果不能夠跳轉(zhuǎn)到訪問網(wǎng)址url對(duì)應(yīng)的防偽網(wǎng)站http://www.seediot.com/sy.html,則表示待驗(yàn)證二維碼不包含訪問網(wǎng)址url,判定為偽碼并過濾;

步驟2、獲得掃描時(shí)間和掃描地點(diǎn):

根據(jù)訪問網(wǎng)址url跳轉(zhuǎn)到相應(yīng)的防偽網(wǎng)站,利用防偽網(wǎng)站提供的查詢功能獲得掃描時(shí)間和由經(jīng)緯度信息構(gòu)成的掃描地點(diǎn),本實(shí)例是利用html5界面中g(shù)eolocation函數(shù)獲取經(jīng)緯度并從待驗(yàn)證二維碼http://www.seediot.com/sy.html?m=48600147-500001145q000003472中提取待驗(yàn)證溯源碼000003472;由掃描時(shí)間、掃描地點(diǎn)和待驗(yàn)證溯源碼形成一條掃碼記錄并存入掃碼數(shù)據(jù)庫中;

步驟3、判斷待驗(yàn)證溯源碼的真?zhèn)危?/p>

將待驗(yàn)證溯源碼與防偽數(shù)據(jù)庫中的溯源碼進(jìn)行一一比對(duì),若比對(duì)成功,則獲得待驗(yàn)證溯源碼為溯源碼ri,并執(zhí)行步驟4,否則,表示待驗(yàn)證二維碼為偽碼;假設(shè)當(dāng)i=1時(shí),待驗(yàn)證溯源碼為000003472,通過與防偽數(shù)據(jù)庫中溯源碼進(jìn)行一一比對(duì),找到溯源碼r1=000003472,則待驗(yàn)證溯源碼為r1;

步驟4、判斷待檢驗(yàn)驗(yàn)證碼的真?zhèn)危?/p>

根據(jù)溯源碼ri從防偽數(shù)據(jù)庫中獲得相應(yīng)的第i個(gè)y位驗(yàn)證碼;將待檢驗(yàn)驗(yàn)證碼與第i個(gè)y位驗(yàn)證碼進(jìn)行比對(duì),若比對(duì)成功,則表示待驗(yàn)證二維碼為真碼;否則,待驗(yàn)證二維碼為偽碼;

假設(shè)當(dāng)i=1時(shí),待驗(yàn)證驗(yàn)證碼為c2a1,通過溯源碼r1=000003472從防偽數(shù)據(jù)庫中獲得相應(yīng)的第1個(gè)四位驗(yàn)證碼c2a1,與待檢驗(yàn)驗(yàn)證碼比對(duì)成功,表示二維碼為真碼。

如圖2所示,一種利用二維碼的防偽驗(yàn)證方法,是利用溯源碼ri并按如下步驟進(jìn)行風(fēng)險(xiǎn)預(yù)警:

步驟1、本實(shí)例中將風(fēng)險(xiǎn)預(yù)警分為三個(gè)等級(jí):輕度風(fēng)險(xiǎn)預(yù)警,中度風(fēng)險(xiǎn)預(yù)警,重度風(fēng)險(xiǎn)預(yù)警;不同等級(jí)風(fēng)險(xiǎn)預(yù)警設(shè)置掃碼次數(shù)閾值k的值不同,如設(shè)定輕度風(fēng)險(xiǎn)預(yù)警掃碼次數(shù)閾值k為2,中度風(fēng)險(xiǎn)預(yù)警掃碼次數(shù)閾值k為50,重度風(fēng)險(xiǎn)預(yù)警掃碼次數(shù)閾值k為100;統(tǒng)計(jì)溯源碼ri在掃碼數(shù)據(jù)庫中的掃碼記錄,獲得溯源碼ri的掃碼次數(shù)j,假定j為56,并將掃碼次數(shù)j與所設(shè)定的掃碼次數(shù)閾值k進(jìn)行比較,其中k≥2,j=56>k=50;在掃碼次數(shù)j超過掃碼次數(shù)閾值k時(shí),執(zhí)行步驟2;

步驟2、由于存在個(gè)人多次掃描的情況,故對(duì)于在小于一定距離的多次掃碼不進(jìn)行風(fēng)險(xiǎn)預(yù)警;具體實(shí)施中根據(jù)溯源碼ri的掃碼記錄,獲得溯源碼ri的所有掃描地點(diǎn)的經(jīng)緯度信息,假定其中一個(gè)掃描地點(diǎn)為a點(diǎn),另一個(gè)掃描地點(diǎn)為b點(diǎn),aj表示a點(diǎn)的經(jīng)度,aw表示a點(diǎn)的緯度,bj表示b點(diǎn)的經(jīng)度,bw表示b點(diǎn)的緯度,根據(jù)式(3)計(jì)算a點(diǎn)與b點(diǎn)之間的距離d的值,根據(jù)式(3)計(jì)算由經(jīng)緯度信息獲得所有掃描地點(diǎn)之間的距離值d,選出最大的距離值,假設(shè)距離最大值為5000m,距離閾值為500m,并與所設(shè)定的距離閾值進(jìn)行比較,當(dāng)最大的距離值超出距離閾值時(shí)進(jìn)行風(fēng)險(xiǎn)預(yù)警;

本實(shí)例中,最大距離值5000大于距離閾值500,根據(jù)步驟1中的掃碼次數(shù)50≤j=56<100和風(fēng)險(xiǎn)預(yù)警等級(jí),最終防偽驗(yàn)證的判定結(jié)果為進(jìn)行中度風(fēng)險(xiǎn)預(yù)警。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
乐清市| 望江县| 谢通门县| 晴隆县| 双峰县| 苏尼特右旗| 九龙县| 将乐县| 白山市| 林西县| 洛隆县| 茂名市| 班玛县| 礼泉县| 东阿县| 汉阴县| 昌邑市| 汉中市| 和平区| 长丰县| 云梦县| 通化县| 盐山县| 收藏| 泰兴市| 元谋县| 井研县| 南昌县| 闽侯县| 昌吉市| 宁化县| 黄石市| 同心县| 和林格尔县| 新晃| 台东县| 宜良县| 确山县| 鄂伦春自治旗| 寻乌县| 德阳市|