Wrap加密Oracle存儲(chǔ)過(guò)程
?
?
??? Oracle自帶的內(nèi)部包大多數(shù)都是經(jīng)過(guò)加密的,比較好奇,了解一下Oracle進(jìn)行加密的工具。一般都使用wrap工具進(jìn)行加密,這個(gè)wrap的使用語(yǔ)法非常簡(jiǎn)單,只有輸入和輸出兩個(gè)參數(shù),也沒(méi)有多余的操作。但是也沒(méi)有詳細(xì)的錯(cuò)誤提示,所以很多問(wèn)題出現(xiàn)后很難查到原因。簡(jiǎn)單看看,記錄一下這個(gè)工具的用法,以便今后查詢(xún)。
?
??? wrap的語(yǔ)法非常簡(jiǎn)單:wrap iname={input file} [oname={output file}]
?
??? 可以指定路徑,也可以只寫(xiě)出文件名。如果不寫(xiě)oname參數(shù),則在當(dāng)前路徑下創(chuàng)建一個(gè)與iname文件名同名,且后綴為“.plb”的文件。
?
?
?
??? 從網(wǎng)上了解的經(jīng)驗(yàn)來(lái)看,大致要注意3個(gè)問(wèn)題:
?
一、兼容性問(wèn)題
?
??? 各個(gè)版本wrap出來(lái)的結(jié)果是有差別的,Oracle對(duì)wrap生成的結(jié)果也是向下兼容的。10g的數(shù)據(jù)庫(kù)可以使用9i生成的wrap文件,而在9i中無(wú)法使用10g的wrap的生成結(jié)果。
?
?
二、字符問(wèn)題
?
??? 操作系統(tǒng)的字符集設(shè)置不正確,可能會(huì)引起wrap的錯(cuò)誤(這個(gè)問(wèn)題貌似現(xiàn)在的版本已經(jīng)沒(méi)有了)
?
??? 方法是設(shè)置OS的字符集:SET NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
?
?
三、不支持分析函數(shù)
?
??? 這是一個(gè)04年的帖子:
http://www.itpub.net/thread-217136-1-1.html
?
??? 當(dāng)時(shí)的wrap就是不支持分析函數(shù)的,到目前在10.2.0.3上測(cè)試wrap依舊不支持。但是在PLSQL已經(jīng)是可以支持的了。
?
?
?
?