本發明涉及電力技術領域,尤其涉及一種充電卡管理系統以及方法。
背景技術:
目前市面上使用的充電卡,主要為M1卡和CPU卡,由于M1卡成本較低,使用量也是最多的,但也是最不安全的,很容易被破解,復制克隆充電卡,而且充電卡容易被管理人員盜用。而CPU卡雖然安全性很高但是成本也很高,市面使用率不高。
技術實現要素:
本發明要解決的技術問題在于,針對現有技術的上述缺陷,提供一種安全性高且成本低的充電卡管理系統以及方法。
本發明解決其技術問題所采用的技術方案是:構造一種充電卡管理系統,包括:
發卡系統,用于向充電卡內寫入隨機碼,將唯一標識該充電卡的序列號和隨機碼/加密驗證碼上傳至后臺服務器存儲;
充電樁,用于識別充電卡,讀取充電卡的隨機碼和序列號上傳至后臺服務器進行驗證,并在驗證通過時開啟充電模式;
后臺服務器,用于對發卡系統和充電樁進行管理,基于存儲的序列號和加密驗證碼對充電樁上傳的隨機碼和序列號進行驗證;
其中,所述加密驗證碼基于序列號和發卡時的隨機碼通過消息摘要算法計算得到;且由發卡系統計算后上傳至后臺服務器,或者由發卡系統將隨機碼和序列號發往后臺服務器后由后臺服務器自行計算得到。
在本發明所述的充電卡管理系統中,后臺服務器包括:
加密驗證碼提取模塊,基于充電樁上傳的隨機碼從數據庫中搜索對應的加密驗證碼;
加密驗證碼生成模塊,將充電樁上傳的隨機碼和序列號基于消息摘要算法計算得到當前充電卡的加密驗證碼;
加密驗證碼驗證模塊,比較計算得到的加密驗證碼和數據庫中搜索得到的加密驗證碼,如果兩者一致則驗證通過,如果兩者不一致,則驗證不通過。
在本發明所述的充電卡管理系統中,所述充電卡內存儲有序列號和發卡系統寫入的:隨機碼、隨機數、第一校驗碼、第二校驗碼,所述第一校驗碼由序列號和隨機數按位異或得到,所述第二校驗碼由第一校驗碼和隨機數進行循環冗余校驗運算得到。
在本發明所述的充電卡管理系統中,所述充電樁包括:
信息讀取模塊,用于讀取充電卡的隨機碼、序列號、隨機數、第一校驗碼、第二校驗碼;
合法性驗證模塊,用于將讀取的序列號和隨機數進行異或運算后與讀取的第一校驗碼進行比較,如果不一致,則判斷充電卡不合法;如果一致,則將讀取到的第一校驗碼和隨機數進行循環冗余校驗運算后與讀取的第二校驗碼進行比較,如果不一致,則判斷充電卡不合法,如果一致,則判斷充電卡合法;
請求驗證模塊,用于在判斷充電卡合法后,將讀取的隨機碼、序列號發往后臺服務器進行驗證,以及獲取驗證結果;
結果響應模塊,用于在驗證通過時開啟充電模式,在充電卡不合法或者驗證不通過時報警或者不作處理。
在本發明所述的充電卡管理系統中,所述充電樁還包括:
備份模塊,用于在聯網時從后臺服務器下載存儲的充電卡的序列號和加密驗證碼;
離線加密驗證碼驗證模塊,用于在離線時基于存儲的加密驗證碼,對讀取的隨機碼和序列號進行驗證。
在本發明所述的充電卡管理系統中,所述充電卡還存儲有發卡時寫入的密鑰,所述信息讀取模塊還讀取有充電卡的密鑰;
所述充電樁還包括密鑰驗證模塊,用于將讀取的密鑰和充電樁自身的密碼進行匹配,如果不匹配,則報警或不做處理;如果匹配,才觸發合法性驗證模塊進行合法性驗證。
本發明還公開了一種充電卡管理方法,包括:
發卡系統向充電卡內寫入隨機碼,將唯一標識該充電卡的序列號和隨機碼/加密驗證碼上傳至后臺服務器存儲;
充電樁對充電卡進行識別,讀取充電卡的隨機碼和序列號上傳至后臺服務器進行驗證;
后臺服務器對充電樁進行管理,基于存儲的序列號和加密驗證碼對充電樁上傳的隨機碼和序列號進行驗證;
后臺服務器將驗證結果返回給充電樁,充電樁在驗證結果為通過時開啟充電模式;
其中,所述加密驗證碼基于序列號和發卡時的隨機碼通過消息摘要算法計算得到;且由發卡系統計算后上傳至后臺服務器,或者,由發卡系統將隨機碼和序列號發往后臺服務器后由后臺服務器自行計算得到。
在本發明所述的充電卡管理方法中,所述的對充電樁上傳的隨機碼和序列號進行驗證包括:
基于充電樁上傳的隨機碼從數據庫中搜索對應的加密驗證碼;
將充電樁上傳的隨機碼和序列號基于消息摘要算法計算得到當前充電卡的加密驗證碼;
比較計算得到的加密驗證碼和數據庫中搜索得到的加密驗證碼,如果兩者一致則驗證通過,如果兩者不一致,則驗證不通過。
在本發明所述的充電卡管理方法中,所述發卡系統在發卡時還向充電卡內寫入有:隨機數、第一校驗碼、第二校驗碼,所述第一校驗碼由序列號和隨機數按位異或得到,所述第二校驗碼由第一校驗碼和隨機數進行循環冗余校驗運算得到。
在本發明所述的充電卡管理方法中,所述的對充電卡進行識別包括:
讀取充電卡的隨機碼、序列號、隨機數、第一校驗碼、第二校驗碼;
將讀取的序列號和隨機數進行異或運算后與讀取的第一校驗碼進行比較,如果不一致,則判斷充電卡不合法;如果一致,則將讀取到的第一校驗碼和隨機數進行循環冗余校驗運算后與讀取的第二校驗碼進行比較,如果不一致,則判斷充電卡不合法,如果一致,則判斷充電卡合法;
如果判斷充電卡合法,則將讀取的隨機碼、序列號發往后臺服務器進行驗證,獲取驗證結果。
實施本發明的充電卡管理系統以及方法,具有以下有益效果:本發明在發卡時向充電卡內寫入隨機碼,后臺服務器存儲了基于序列號和發卡時的隨機碼通過消息摘要算法計算得到加密驗證碼,基于此加密驗證碼對充電樁上傳的隨機碼和序列號進行驗證,基于此驗證方法,安全性高,不容易被破解盜取,防止篡改充電卡數據,防止管理人員盜用充電卡,且充電卡為普通的充電卡即可,成本低。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖:
圖1是本發明的充電卡管理系統的較佳實施例的結構示意圖;
圖2是本發明的充電卡管理方法的較佳實施例的結構示意圖。
具體實施方式
本發明通過發卡系統向充電卡內寫入隨機碼,將唯一標識該充電卡的序列號和隨機碼/加密驗證碼上傳至后臺服務器存儲;充電樁在識別充電卡后,讀取充電卡的隨機碼和序列號上傳至后臺服務器進行驗證,并在驗證通過時開啟充電模式;后臺服務器可以對充電樁進行管理,基于存儲的序列號和加密驗證碼對充電樁上傳的隨機碼和序列號進行驗證;其中,所述加密驗證碼基于序列號和發卡時的隨機碼通過消息摘要算法計算得到;且由發卡系統計算后上傳至后臺服務器,或者,由發卡系統將隨機碼和序列號發往后臺服務器后由后臺服務器自行計算得到。基于此驗證方法,安全性高,不容易被破解盜取,防止篡改充電卡數據,防止管理人員盜用充電卡,且充電卡為普通的充電卡即可,成本低。
為了更好的理解上述技術方案,下面將結合說明書附圖以及具體的實施方式對上述技術方案進行詳細的說明,應當理解本發明實施例以及實施例中的具體特征是對本申請技術方案的詳細的說明,而不是對本申請技術方案的限定,在不沖突的情況下,本發明實施例以及實施例中的技術特征可以相互組合。
參考圖1是本發明的較佳實施例的結構示意圖。較佳實施例中,充電卡管理系統包括:發卡系統、充電樁、后臺服務器。
發卡系統:
從原始廠家購買的空白卡,一般寫入有唯一標識該充電卡的序列號,序列號不可更改,空白卡需要經過發卡操作之后,才能成為用于充電的充電卡。發卡系統一般包括一個安裝有發卡軟件的且與后臺服務器通信連接的發卡終端、與發卡終端連接的發卡器,發卡終端包括但不限于電腦、平板等。發卡軟件通過操作發卡器,對空白卡寫入有隨機碼、隨機數、第一校驗碼、第二校驗碼、密鑰等,并將序列號和隨機碼上傳至后臺服務器,再由后臺服務器將序列號和隨機碼通過消息摘要算法計算得到加密驗證碼,后臺服務器將序列號和計算得到的加密驗證碼保存以用于后續讀卡時的驗證操作;或者,發卡系統將該充電卡的序列號和隨機碼通過消息摘要算法計算得到加密驗證碼,再將該充電卡的序列號和計算得到的加密驗證碼上傳至后臺服務器的數據庫存儲。加密驗證碼入庫保存成功,也代表該卡發行成功,即為合法的充電卡。電動車主購買該卡后,便可前往充電樁上刷卡充電。
其中,充電卡包括多個存儲扇區,每個扇區包括多個具有固定字節的數據塊,較佳實施例中,序列號、隨機數、第一校驗碼、第二校驗碼、密鑰寫入在第一個存儲扇區,隨機碼較長,可以寫到其他的任意一個合適的存儲扇區。例如,序列號和廠商代碼放在第一個存儲扇區的第一個數據塊,第一校驗碼、隨機數、第二校驗碼放在第一個存儲扇區的第二個數據塊,密鑰放在第一個存儲扇區的第四個數據塊,隨機碼放在第n個扇區。
其中,所述第一校驗碼由序列號和隨機數按位異或得到,所述第二校驗碼由第一校驗碼和隨機數進行循環冗余校驗運算得到。消息摘要算法可以采用但不限于MD5算法,循環冗余校驗可以采用但不限于CRC16校驗。
充電樁:
充電樁主要用于識別充電卡,讀取充電卡的數據,對充電卡進行合法性驗證,并在合法性驗證通過后將讀取的充電卡的隨機碼和序列號上傳至后臺服務器進行驗證,并在驗證通過時開啟充電模式;本實施例中,所述充電樁包括:
信息讀取模塊,例如讀卡器,用于讀取充電卡的隨機碼、序列號、隨機數、第一校驗碼、第二校驗碼、密鑰;
密鑰驗證模塊,用于將讀取的密鑰和充電樁自身的密碼進行匹配,如果不匹配,則報警或不做處理;如果匹配則觸發合法性驗證模塊進行合法性驗證。
合法性驗證模塊,用于將讀取的序列號和隨機數進行異或運算后與讀取的第一校驗碼進行比較,如果不一致,則判斷充電卡不合法;如果一致,則將讀取到的第一校驗碼和隨機數進行循環冗余校驗運算后與讀取的第二校驗碼進行比較,如果不一致,則判斷充電卡不合法,如果一致,則判斷充電卡合法;
請求驗證模塊,用于在判斷充電卡合法后,將讀取的隨機碼、序列號發往后臺服務器進行驗證,以及獲取驗證結果;請求驗證模塊的通信技術包括但不限于光纖通信、微波通信、485通信、GPRS通信等。
結果響應模塊,用于在驗證通過時開啟充電模式,在充電卡不合法或者驗證不通過時報警或者不作處理。報警方式包括但不限于顯示屏文字提示、蜂鳴報警、語音報警、燈光閃爍報警等。
如果充電樁與后臺服務器斷網了,則可以拒絕充電,也可以通過增加備份模塊和離線加密驗證碼驗證模塊在充電樁本地進行驗證。其中,備份模塊在聯網時從后臺服務器下載存儲的充電卡的序列號和加密驗證碼,然后在對充電卡進行驗證時,請求驗證模塊無法工作,則可以啟動離線加密驗證碼驗證模塊,在離線時基于存儲的加密驗證碼,對讀取的隨機碼和序列號進行驗證,具體的驗證過程參考下述的后臺服務器對隨機碼和序列號進行驗證的過程。
后臺服務器:
主要用于對充電樁和發卡系統進行管理,負責對發卡時的數據管理,以及讀卡時基于存儲的序列號和加密驗證碼對充電樁上傳的隨機碼和序列號進行驗證;其中,所述加密驗證碼由發卡系統計算后上傳至后臺服務器,或者,由發卡系統將隨機碼和序列號發往后臺服務器后由后臺服務器基于該隨機碼和序列號通過消息摘要自行計算得到。由于后臺服務器管理所有充電卡的信息,管理人員可以查看已發行充電卡信息,統計相關充電信息,從而達到了智能安全信息化的管理需求。本實施例中,后臺服務器具體包括:
加密驗證碼提取模塊,基于充電樁上傳的隨機碼從數據庫中搜索對應的加密驗證碼;
加密驗證碼生成模塊,將充電樁上傳的隨機碼和序列號基于消息摘要算法計算得到當前充電卡的加密驗證碼;
加密驗證碼驗證模塊,比較計算得到的加密驗證碼和數據庫中搜索得到的加密驗證碼,如果兩者一致則驗證通過,如果兩者不一致,則驗證不通過。
常用的充電卡為M1卡,下面以M1卡為例詳細說明本發明。
M1卡的扇區0的塊0一般都是存儲卡片標識信息,目前市面使用最廣的M1卡,其中序列號占用4字節,其是卡片的唯一標識。如下表,塊0低四字節存儲序列號,塊1、塊2是數據塊,可以用于存儲用戶自定義數據,塊3即為控制塊存儲了密鑰A、密鑰B,密鑰A、密鑰B即為用戶設置的密碼,知道密鑰A,密鑰B,便破解了該塊的卡片數據,給用戶數據帶來破壞,給個人或運營機構帶來財產損失等嚴重問題。
表1M1的第1個扇區的結構示意表
如上表1,塊0低四字節存儲序列號,目前最新設計卡片已有占用7字節的,其同樣都是卡片的唯一標識。塊1第0-3字節作為第一校驗碼存儲空間;第4-7字節存儲有一個開卡時寫入的隨機數;第8-9字節存儲開卡時對0~7字節運算的第二校驗碼(CRC16校驗值)。第一校驗碼是0扇區塊0的3-0字節的序列號與塊1的7-4字節的隨機數從高位到低位按位異或,得到的4字節從高到低寫入塊1的第3-0字節。
隨機碼在卡片的其他某一個扇區,如下表2,假設為扇區n,在發卡時,每次向該扇區n,塊0、塊1、塊2寫入48字節隨機碼,則該扇區的隨機碼基本上每張卡片都是不一樣的。
表2M1的第n個扇區的結構示意表(存儲隨機碼)
發卡時,發卡系統將生成的隨機碼和該卡片的序列號,進行MD5加密運算生成唯一的加密驗證碼發往后臺服務器存儲;或者將將生成的隨機碼和該卡片的序列號直接發往臺服務器,后臺服務器將接收的隨機碼和序列號進行MD5加密運算生成唯一的加密驗證碼并存儲。
每次讀卡時都把0扇區塊0的3-0字節與塊1的7-4字節按位異或并與塊1的第3-0字節比較,如果相等,則進行進一步的CRC16校驗運算。不等,則不是所發行的卡,異卡。然后,需要對0扇區塊1的8(0~7)個字節,進行CRC16校驗運算。CRC16的校驗值是存儲在8-9字節,第9字節存儲CRC16高字節,第8字節存儲CRC16低字節。讀卡時,需要對0扇區塊1的8(0~7)個字節,進行CRC16校驗運算,若運算值與存儲的8-9字節的CRC16校驗值相同,則是合法的卡。否則是不合法的卡。在校驗合法后,充電樁將0扇區塊0的3-0字節的序列號和n扇區的塊0-塊3的隨機碼一起發往后臺服務器進行驗證。
參考圖2,本發明還公開了一種充電卡管理方法,包括:
S100、發卡系統向充電卡內寫入隨機碼,將唯一標識該充電卡的序列號和隨機碼/加密驗證碼上傳至后臺服務器存儲;
S200、充電樁對充電卡進行識別,讀取充電卡的隨機碼和序列號上傳至后臺服務器進行驗證;
S300、后臺服務器對充電樁進行管理,基于存儲的序列號和加密驗證碼對充電樁上傳的隨機碼和序列號進行驗證;
S400、后臺服務器將驗證結果返回給充電樁,充電樁在驗證結果為通過時開啟充電模式;
其中,所述加密驗證碼基于序列號和發卡時的隨機碼通過消息摘要算法計算得到;且由發卡系統計算后上傳至后臺服務器,或者,由發卡系統將隨機碼和序列號發往后臺服務器后由后臺服務器自行計算得到。
其中,步驟S300中所述的對充電樁上傳的隨機碼和序列號進行驗證包括:
S310、基于充電樁上傳的隨機碼從數據庫中搜索對應的加密驗證碼;
S320、將充電樁上傳的隨機碼和序列號基于消息摘要算法計算得到當前充電卡的加密驗證碼;
S330、比較計算得到的加密驗證碼和數據庫中搜索得到的加密驗證碼,如果兩者一致則驗證通過,如果兩者不一致,則驗證不通過。
其中,步驟S100中,所述發卡系統在發卡時還向充電卡內寫入有:隨機數、第一校驗碼、第二校驗碼,所述第一校驗碼由序列號和隨機數按位異或得到,所述第二校驗碼由第一校驗碼和隨機數進行循環冗余校驗運算得到。
步驟S200中所述的對充電卡進行識別包括:
S210、讀取充電卡的隨機碼、序列號、隨機數、第一校驗碼、第二校驗碼、密鑰;
S220、將讀取的密鑰和充電樁自身的密碼進行匹配,如果不匹配,則報警或不做處理;如果匹配,則進行合法性驗證:將讀取的序列號和隨機數進行異或運算后與讀取的第一校驗碼進行比較,如果不一致,則判斷充電卡不合法;如果一致,則將讀取到的第一校驗碼和隨機數進行循環冗余校驗運算后與讀取的第二校驗碼進行比較,如果不一致,則判斷充電卡不合法,如果一致,則判斷充電卡合法;
S220、如果判斷充電卡合法,則將讀取的隨機碼、序列號發往后臺服務器進行驗證,獲取驗證結果。
綜上所述,實施本發明的充電卡管理系統以及方法,具有以下有益效果:本發明在發卡時向充電卡內寫入隨機碼,后臺服務器存儲了基于序列號和發卡時的隨機碼通過消息摘要算法計算得到加密驗證碼,基于此加密驗證碼對充電樁上傳的隨機碼和序列號進行驗證,基于此驗證方法,安全性高,不容易被破解盜取,防止篡改充電卡數據,防止管理人員盜用充電卡,且充電卡為普通的充電卡即可,成本低。
上面結合附圖對本發明的實施例進行了描述,但是本發明并不局限于上述的具體實施方式,上述的具體實施方式僅僅是示意性的,而不是限制性的,本領域的普通技術人員在本發明的啟示下,在不脫離本發明宗旨和權利要求所保護的范圍情況下,還可做出很多形式,這些均屬于本發明的保護之內。