淺析Oracle Spatial數(shù)據(jù)加密問題
經(jīng)過長時間學習Oracle 9i的Spatial數(shù)據(jù)加密技術(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ù)傳入一個密鑰參數(shù),這個密鑰參數(shù)來自于你的客戶端程序或Web應(yīng)用程序。
這樣,別人就無法解析你存儲于Spatial中的數(shù)據(jù),從而實現(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ù),因此實現(xiàn)難度稍高一些。
2)C語言程序讀取機器的硬件碼,經(jīng)過運算后得出服務(wù)端的密鑰。
3)讀取數(shù)據(jù)時還要給函數(shù)傳入客戶端的密鑰參數(shù),兩個密鑰結(jié)合才是可以對數(shù)據(jù)進行解密的最終密鑰。當然,數(shù)據(jù)入庫時也要用相應(yīng)的密鑰進行加密。
這樣,經(jīng)過Spatial數(shù)據(jù)加密的空間數(shù)據(jù)就僅僅可以被特定的客戶端和服務(wù)器所獲取,其他程序無法獲取。
【編輯推薦】