淺析Oracle Spatial數(shù)據(jù)加密問題
經(jīng)過長時(shí)間學(xué)習(xí)Oracle 9i的Spatial數(shù)據(jù)加密技術(shù),在這里我想大家分享一下,看完本文你肯定有不少收獲。
具體加密實(shí)現(xiàn):
1、簡單的數(shù)據(jù)加密。
1)創(chuàng)建返回值為SDO_GEOMETRY數(shù)據(jù)類型的自定義函數(shù),從BLOB(或其他任意的數(shù)據(jù)類型)數(shù)據(jù)中解密出SDO_GEOMETRY數(shù)據(jù)并返回。
2)解密過程需要給函數(shù)傳入一個(gè)密鑰參數(shù),這個(gè)密鑰參數(shù)來自于你的客戶端程序或Web應(yīng)用程序。
這樣,別人就無法解析你存儲于Spatial中的數(shù)據(jù),從而實(shí)現(xiàn)Spatial數(shù)據(jù)加密。
2、高級的數(shù)據(jù)加密。
1)用C語言創(chuàng)建返回值為SDO_GEOMETRY數(shù)據(jù)類型的自定義函數(shù),從BLOB(或其他任意的數(shù)據(jù)類型)數(shù)據(jù)中解密出SDO_GEOMETRY數(shù)據(jù)并返回。這一步需要有OCI接口相關(guān)的編程技術(shù),因此實(shí)現(xiàn)難度稍高一些。
2)C語言程序讀取機(jī)器的硬件碼,經(jīng)過運(yùn)算后得出服務(wù)端的密鑰。
3)讀取數(shù)據(jù)時(shí)還要給函數(shù)傳入客戶端的密鑰參數(shù),兩個(gè)密鑰結(jié)合才是可以對數(shù)據(jù)進(jìn)行解密的最終密鑰。當(dāng)然,數(shù)據(jù)入庫時(shí)也要用相應(yīng)的密鑰進(jìn)行加密。
這樣,經(jīng)過Spatial數(shù)據(jù)加密的空間數(shù)據(jù)就僅僅可以被特定的客戶端和服務(wù)器所獲取,其他程序無法獲取。
【編輯推薦】