2012-03-14 81 views
-1

奧地利的商業選擇退出列表提供與SHA-1散列值,每個20個字節的原始二進制文件奧臣名單。如何使用PL/SQL讀取並將其轉換爲VARCHAR2。如何閱讀與PL/SQL

+3

你能解釋更多關於二進制文件格式是什麼?有數十億字符數據可能在一個二進制文件format--我們或許可以幫助你,如果你能具體談談的格式表示的方式。 – 2012-03-14 14:47:07

回答

0

我的同事找到了答案: 額外的電子郵件地址僅僅是轉換的驗證。 測試散列文件從官方網站奧採取:http://www.rtr.at/de/tk/nutzenecg

DECLARE 
    vInHandle utl_file.file_type; 
    V1 RAW(32767); 
    vEmail VARCHAR2(200) := '[email protected]'; 
BEGIN 
    --open file 
    vInHandle := utl_file.fopen('RECEIVE', 'testliste.hash', 'R'); 
    --read raw 20 bytes 
    UTL_FILE.GET_RAW(vInHandle,V1,20); 
    --convert raw 20 bytes to HEX 
    dbms_output.put_line('Compiled hash:'||LOWER (TO_CHAR (RAWTOHEX (v1)))); 

    --convert email to hash 
    dbms_output.put_line('Email hash: '||LOWER (sys.dbms_crypto.HASH(utl_raw.cast_to_raw(vEmail),sys.dbms_crypto.hash_sh1))); 



END fopen; 
/

如果兩個輸出都一樣,一切工作正常。 ORACLE用戶必須具有授權才能執行dbms_crypto包。

-1

它可以使用用於存儲和讀取二進制文件格式二進制大對象/大對象(BLOB)來完成。