<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FSystem_Packages%2FDBMS_OBFUSCATION_TOOLKIT</id>
		<title>Oracle PL/SQL/System Packages/DBMS OBFUSCATION TOOLKIT - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL%2FSystem_Packages%2FDBMS_OBFUSCATION_TOOLKIT"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/System_Packages/DBMS_OBFUSCATION_TOOLKIT&amp;action=history"/>
		<updated>2026-05-25T18:09:28Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/System_Packages/DBMS_OBFUSCATION_TOOLKIT&amp;diff=1300&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/System_Packages/DBMS_OBFUSCATION_TOOLKIT&amp;diff=1300&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL/System_Packages/DBMS_OBFUSCATION_TOOLKIT&amp;diff=1301&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL/System_Packages/DBMS_OBFUSCATION_TOOLKIT&amp;diff=1301&amp;oldid=prev"/>
				<updated>2010-05-26T09:55:27Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==DBMS_OBFUSCATION_TOOLKIT.des3decrypt==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE FUNCTION get_dec_val (&lt;br /&gt;
  2     p_in_val   VARCHAR2,&lt;br /&gt;
  3     p_key      VARCHAR2,&lt;br /&gt;
  4     p_iv       VARCHAR2 := NULL,&lt;br /&gt;
  5     p_which    NUMBER := 0&lt;br /&gt;
  6  )&lt;br /&gt;
  7     RETURN VARCHAR2&lt;br /&gt;
  8  IS&lt;br /&gt;
  9     l_dec_val   VARCHAR2 (2000);&lt;br /&gt;
 10     l_iv        VARCHAR2 (2000);&lt;br /&gt;
 11  BEGIN&lt;br /&gt;
 12     IF p_which = 0&lt;br /&gt;
 13     THEN&lt;br /&gt;
 14        IF LENGTH (p_key) &amp;lt; 16&lt;br /&gt;
 15        THEN&lt;br /&gt;
 16           raise_application_error(-20001,&amp;quot;Key length less than 16 for two-pass scheme&amp;quot;);&lt;br /&gt;
 17        END IF;&lt;br /&gt;
 18     ELSIF p_which = 1&lt;br /&gt;
 19     THEN&lt;br /&gt;
 20        IF LENGTH (p_key) &amp;lt; 24&lt;br /&gt;
 21        THEN raise_application_error(-20002,&amp;quot;Key length less than 24 for three-pass scheme&amp;quot;);&lt;br /&gt;
 22        END IF;&lt;br /&gt;
 23     ELSE&lt;br /&gt;
 24        raise_application_error (-20003,&amp;quot;Incorrect value of which &amp;quot;|| p_which|| &amp;quot;; must be 0 or 1&amp;quot;);&lt;br /&gt;
 25     END IF;&lt;br /&gt;
 26&lt;br /&gt;
 27     l_iv := RPAD (p_iv, (8 * ROUND (LENGTH (p_iv) / 8, 0) + 8));&lt;br /&gt;
 28     l_dec_val :=&lt;br /&gt;
 29        DBMS_OBFUSCATION_TOOLKIT.des3decrypt(input_string      =&amp;gt; UTL_RAW.cast_to_varchar2(HEXTORAW (p_in_val)),key_string =&amp;gt; p_key,iv_string =&amp;gt; l_iv,which =&amp;gt; p_which);&lt;br /&gt;
 30     RETURN RTRIM (l_dec_val);&lt;br /&gt;
 31  END;&lt;br /&gt;
 32  /&lt;br /&gt;
&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DBMS_OBFUSCATION_TOOLKIT.des3encrypt==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE FUNCTION get_enc_val (&lt;br /&gt;
  2     p_in_val   IN   VARCHAR2,&lt;br /&gt;
  3     p_key      IN   VARCHAR2,&lt;br /&gt;
  4     p_iv       IN   VARCHAR2 := NULL,&lt;br /&gt;
  5     p_which    IN   NUMBER := 0&lt;br /&gt;
  6  )&lt;br /&gt;
  7     RETURN VARCHAR2&lt;br /&gt;
  8  IS&lt;br /&gt;
  9     l_enc_val   VARCHAR2 (200);&lt;br /&gt;
 10     l_in_val    VARCHAR2 (200);&lt;br /&gt;
 11     l_iv        VARCHAR2 (200);&lt;br /&gt;
 12  BEGIN&lt;br /&gt;
 13     IF p_which = 0&lt;br /&gt;
 14     THEN&lt;br /&gt;
 15        IF LENGTH (p_key) &amp;lt; 16&lt;br /&gt;
 16        THEN&lt;br /&gt;
 17           raise_application_error&lt;br /&gt;
 18                                 (-20001,&lt;br /&gt;
 19                                  &amp;quot;Key length less than 16 for two-pass scheme&amp;quot;&lt;br /&gt;
 20                                 );&lt;br /&gt;
 21        END IF;&lt;br /&gt;
 22     ELSIF p_which = 1&lt;br /&gt;
 23     THEN&lt;br /&gt;
 24        IF LENGTH (p_key) &amp;lt; 24&lt;br /&gt;
 25        THEN&lt;br /&gt;
 26           raise_application_error&lt;br /&gt;
 27                               (-20002,&lt;br /&gt;
 28                                &amp;quot;Key length less than 24 for three-pass scheme&amp;quot;&lt;br /&gt;
 29                               );&lt;br /&gt;
 30        END IF;&lt;br /&gt;
 31     ELSE&lt;br /&gt;
 32        raise_application_error (-20003,&lt;br /&gt;
 33                                    &amp;quot;Incorrect value of which &amp;quot;&lt;br /&gt;
 34                                 || p_which&lt;br /&gt;
 35                                 || &amp;quot;; must be 0 or 1&amp;quot;&lt;br /&gt;
 36                                );&lt;br /&gt;
 37     END IF;&lt;br /&gt;
 38&lt;br /&gt;
 39     l_in_val := RPAD (p_in_val, (8 * ROUND (LENGTH (p_in_val) / 8, 0) + 8));&lt;br /&gt;
 40     l_iv := RPAD (p_iv, (8 * ROUND (LENGTH (p_iv) / 8, 0) + 8));&lt;br /&gt;
 41     l_enc_val :=&lt;br /&gt;
 42        DBMS_OBFUSCATION_TOOLKIT.des3encrypt (input_string      =&amp;gt; l_in_val,&lt;br /&gt;
 43                                              key_string        =&amp;gt; p_key,&lt;br /&gt;
 44                                              iv_string         =&amp;gt; l_iv,&lt;br /&gt;
 45                                              which             =&amp;gt; p_which&lt;br /&gt;
 46                                             );&lt;br /&gt;
 47     l_enc_val := RAWTOHEX (UTL_RAW.cast_to_raw (l_enc_val));&lt;br /&gt;
 48     RETURN l_enc_val;&lt;br /&gt;
 49  END;&lt;br /&gt;
 50  /&lt;br /&gt;
&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DBMS_OBFUSCATION_TOOLKIT.des3getkey==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE FUNCTION get_key (&lt;br /&gt;
  2     p_seed    VARCHAR2 :=    &amp;quot;1234567890&amp;quot;&lt;br /&gt;
  3                           || &amp;quot;1234567890&amp;quot;&lt;br /&gt;
  4                           || &amp;quot;1234567890&amp;quot;&lt;br /&gt;
  5                           || &amp;quot;1234567890&amp;quot;&lt;br /&gt;
  6                           || &amp;quot;1234567890&amp;quot;&lt;br /&gt;
  7                           || &amp;quot;1234567890&amp;quot;&lt;br /&gt;
  8                           || &amp;quot;1234567890&amp;quot;&lt;br /&gt;
  9                           || &amp;quot;1234567890&amp;quot;,&lt;br /&gt;
 10     p_which   NUMBER := 0&lt;br /&gt;
 11  )&lt;br /&gt;
 12     RETURN VARCHAR2&lt;br /&gt;
 13  IS&lt;br /&gt;
 14     l_seed   VARCHAR2 (80);&lt;br /&gt;
 15     l_ret    VARCHAR2 (2000);&lt;br /&gt;
 16  BEGIN&lt;br /&gt;
 17     l_seed := RPAD (p_seed, 80);&lt;br /&gt;
 18     l_ret := DBMS_OBFUSCATION_TOOLKIT.des3getkey (seed_string=&amp;gt; l_seed,which =&amp;gt; p_which);&lt;br /&gt;
 19     l_ret := RAWTOHEX (UTL_RAW.cast_to_raw (l_ret));&lt;br /&gt;
 20     RETURN l_ret;&lt;br /&gt;
 21  END;&lt;br /&gt;
 22  /&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==dbms_obfuscation_toolkit.md5==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set serveroutput on&lt;br /&gt;
SQL&amp;gt;     declare&lt;br /&gt;
  2          l_md varchar2(16);&lt;br /&gt;
  3      begin&lt;br /&gt;
  4          l_md := dbms_obfuscation_toolkit.md5(input_string =&amp;gt; &amp;quot;911&amp;quot; );&lt;br /&gt;
  5          dbms_output.put_line( &amp;quot;MD5 of 911: &amp;quot; ||utl_raw.cast_to_raw( l_md ));&lt;br /&gt;
  6          --&lt;br /&gt;
  7          l_md := dbms_obfuscation_toolkit.md5(input_string =&amp;gt; &amp;quot;411&amp;quot; );&lt;br /&gt;
  8          dbms_output.put_line( &amp;quot;MD5 of 411: &amp;quot; || utl_raw.cast_to_raw( l_md ));&lt;br /&gt;
  9    end;&lt;br /&gt;
 10   /&lt;br /&gt;
MD5 of 911: B56A18E0EACDF51AA2A5306B0F533204&lt;br /&gt;
MD5 of 411: 17D63B1625C816C22647A73E1482372B&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DBMS_OBFUSCATION_TOOLKIT.md5 and RAWTOHEX==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE FUNCTION get_hash_val (p_in VARCHAR2)&lt;br /&gt;
  2     RETURN VARCHAR2&lt;br /&gt;
  3  IS&lt;br /&gt;
  4     l_hash   VARCHAR2 (2000);&lt;br /&gt;
  5  BEGIN&lt;br /&gt;
  6     l_hash :=RAWTOHEX(UTL_RAW.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.md5 (input_string=&amp;gt; p_in)));&lt;br /&gt;
  7     RETURN l_hash;&lt;br /&gt;
  8  END;&lt;br /&gt;
  9  /&lt;br /&gt;
Function created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select get_hash_val(&amp;quot;12345&amp;quot;) from dual;&lt;br /&gt;
GET_HASH_VAL(&amp;quot;12345&amp;quot;)&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
827CCB0EEA8A706C4C34A16891F84E7B&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Demonstrate DES3 encryption==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DECLARE&lt;br /&gt;
  2   input_string        VARCHAR2(160) := &amp;quot;password01&amp;quot;;&lt;br /&gt;
  3   key_string          VARCHAR2(24);&lt;br /&gt;
  4&lt;br /&gt;
  5   encrypted_string            VARCHAR2(2048);&lt;br /&gt;
  6   decrypted_string            VARCHAR2(2048);&lt;br /&gt;
  7     error_in_input_buffer_length EXCEPTION;&lt;br /&gt;
  8     PRAGMA EXCEPTION_INIT(error_in_input_buffer_length, -28232);&lt;br /&gt;
  9     INPUT_BUFFER_LENGTH_ERR_MSG VARCHAR2(100) := &amp;quot;              &amp;quot;;&lt;br /&gt;
 10&lt;br /&gt;
 11  BEGIN&lt;br /&gt;
 12        input_string := input_string||input_string||input_string||input_string||input_string||input_string||input_string||input_string;&lt;br /&gt;
 13        dbms_output.put_line(&amp;quot;input string              : &amp;quot; || input_string);&lt;br /&gt;
 14        dbms_obfuscation_toolkit.DES3GETKEY(which=&amp;gt;1, seed_string=&amp;gt;input_string,key=&amp;gt;key_string);&lt;br /&gt;
 15        dbms_obfuscation_toolkit.DESENCRYPT(input_string =&amp;gt; input_string,key_string =&amp;gt; key_string, encrypted_string =&amp;gt; encrypted_string );&lt;br /&gt;
 16        dbms_output.put_line(&amp;quot;encrypted string              : &amp;quot; ||encrypted_string);&lt;br /&gt;
 17        dbms_obfuscation_toolkit.DESDecrypt(input_string =&amp;gt; encrypted_string,key_string =&amp;gt; key_string, decrypted_string =&amp;gt; decrypted_string);&lt;br /&gt;
 18        dbms_output.put_line(&amp;quot;Decrypted output             : &amp;quot; ||decrypted_string);&lt;br /&gt;
 19        if input_string = decrypted_string THEN&lt;br /&gt;
 20           dbms_output.put_line(&amp;quot;&amp;gt; DES Encryption and Decryption successful&amp;quot;);&lt;br /&gt;
 21        END if;&lt;br /&gt;
 22     EXCEPTION&lt;br /&gt;
 23        WHEN error_in_input_buffer_length THEN dbms_output.put_line(&amp;quot;&amp;gt; &amp;quot; || INPUT_BUFFER_LENGTH_ERR_MSG);&lt;br /&gt;
 24     END;&lt;br /&gt;
 25&lt;br /&gt;
 26  /&lt;br /&gt;
&lt;br /&gt;
PL/SQL procedure successfully completed.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>