我知道有des加密的。其它的我就不清楚了。书上没有提过。
pl/sql中的过程DBMS_OBFUSCATION_TOOLKIT可以完成任务。
但是我用不来

解决方案 »

  1.   

    dbms_obfuscation_toolkit.md5(input_string => pw,checksum_string => epw)
    我用的是ORACLE817:PACKAGE     dbms_obfuscation_toolkit AS
        ------------------------------- TYPES ------------------------------------
        -- Types used to make it easier for the user to reserve the correct
        -- amount of memory for a checksum.    SUBTYPE varchar2_checksum IS VARCHAR2(2000);
        SUBTYPE raw_checksum IS RAW(2000);    ----------------------------- CONSTANTS -----------------------------------
        -- Triple DES modes
        TwoKeyMode   INTEGER := 0;
        ThreeKeyMode INTEGER := 1;    ---------------------- FUNCTIONS AND PROCEDURES ---------------------------    ---------------------------- DATA ENCRYPTION ------------------------------
        -- The following routines encrypt and decrypt data.
        -- There are two versions of each procedure and function: one for raw data
        -- and the other for strings.
        ---------------------------------------------------------------------------    -- DES
        PROCEDURE DESEncrypt(input            IN     RAW,
                             key              IN     RAW,
                             encrypted_data      OUT RAW);    FUNCTION DESEncrypt(input            IN  RAW,
                            key              IN  RAW)
            RETURN RAW;
                             
        PROCEDURE DESEncrypt(input_string    IN     VARCHAR2,
                            key_string       IN     VARCHAR2,
                            encrypted_string    OUT VARCHAR2);    FUNCTION DESEncrypt(input_string     IN  VARCHAR2,
                            key_string       IN  VARCHAR2)
            RETURN VARCHAR2;    PROCEDURE DESDecrypt(input            IN      RAW,
                             key              IN      RAW,
                             decrypted_data       OUT RAW);    FUNCTION DESDecrypt(input            IN  RAW,
                            key              IN  RAW)
            RETURN RAW;    PROCEDURE DESDecrypt(input_string     IN    VARCHAR2,
                             key_string       IN    VARCHAR2,
                             decrypted_string    OUT VARCHAR2);    FUNCTION DESDecrypt(input_string     IN     VARCHAR2,
                            key_string       IN  VARCHAR2)
            RETURN VARCHAR2;    -- Triple DES
        PROCEDURE DES3Encrypt(input          IN     RAW,
                              key            IN     RAW,
                              encrypted_data    OUT RAW,
                              which          IN     PLS_INTEGER
                                  DEFAULT TwoKeyMode);    FUNCTION DES3Encrypt(input IN RAW,
                             key   IN RAW,
                             which IN PLS_INTEGER DEFAULT TwoKeyMode)
            RETURN RAW;
                             
        PROCEDURE DES3Encrypt(input_string     IN     VARCHAR2,
                              key_string       IN     VARCHAR2,
                              encrypted_string    OUT VARCHAR2,
                              which            IN     PLS_INTEGER
                                  DEFAULT TwoKeyMode);    FUNCTION DES3Encrypt(input_string  IN VARCHAR2,
                             key_string    IN VARCHAR2,
                             which         IN PLS_INTEGER DEFAULT TwoKeyMode)
            RETURN VARCHAR2;    PROCEDURE DES3Decrypt(input          IN     RAW,
                              key            IN     RAW,
                              decrypted_data    OUT RAW,
                              which          IN     PLS_INTEGER
                                  DEFAULT TwoKeyMode);    FUNCTION DES3Decrypt(input IN RAW,
                             key   IN RAW,
                             which IN PLS_INTEGER DEFAULT TwoKeyMode)
            RETURN RAW;    PROCEDURE DES3Decrypt(input_string     IN     VARCHAR2,
                              key_string       IN     VARCHAR2,
                              decrypted_string    OUT VARCHAR2,
                              which            IN     PLS_INTEGER
                                  DEFAULT TwoKeyMode);    FUNCTION DES3Decrypt(input_string IN VARCHAR2,
                             key_string   IN VARCHAR2,
                             which        IN PLS_INTEGER DEFAULT TwoKeyMode)
            RETURN VARCHAR2;    -------------------------------- MD5 --------------------------------------
        -- The following routines generate MD5 hashes of data.
        -- There are two versions: one for raw data and the other for strings.
        ---------------------------------------------------------------------------    PROCEDURE MD5(input    IN  RAW,
                      checksum OUT raw_checksum);    FUNCTION MD5(input    IN  RAW)
            RETURN raw_checksum;    PROCEDURE MD5(input_string    IN     VARCHAR2,
                      checksum_string    OUT varchar2_checksum);    FUNCTION MD5(input_string    IN     VARCHAR2)
            RETURN varchar2_checksum;END dbms_obfuscation_toolkit;
      

  2.   

    呵呵 再次请教beckham兄  我是这样用了...
    Password:=dbms_obfuscation_toolkit.md5(p_str);有返回值但是跟PHP中的MD5函数生成的不是一样.象加密123456 php: e10adc3949ba59abbe56e057f20f883e oracle: ��I篩V郬��;
    不知道怎么样能解决这个问题..我现要实现他们是一致的才行..
    或者这样
    dbms_obfuscation_toolkit.md5(p_str,p_Password); (这样是匹配的函数太多 如非将p_str定义为NUMBER类型)...
    请教! 谢谢..
      

  3.   

    呵呵 再次请教beckham兄  我是这样用了...
      

  4.   

    declare
      v_out Varchar2(300);
      v_str varchar2(30);
    begin
       v_str:='123456';
       v_out:=rawtohex(utl_raw.cast_to_raw(dbms_obfuscation_toolkit.md5(input_string =>v_str)));
       dbms_output.put_line(v_out);
    end;
    /你看一下这应该就是你要的结果!!!
      

  5.   

    我相信superlcj(幽灵)先生的方法应该能行..可惜我现在把dbms_obfuscation_toolkit.md5的程序包体都弄得可能出问题了..老是提示错误 说程序包丢失..呵呵  真郁闷...  刚学什么都不懂得...希望各位兄台给个法子...谢谢!
      

  6.   

    大哥
    oracle存储函数中
    dyndql:='select var,a.aaa from aaa a'
    变量var如何引用,谁知道,帮帮忙,谢谢了
      

  7.   


    大哥
    oracle存储函数中
    dyndql:='select var,a.aaa from aaa a'
    变量var如何引用,谁知道,帮帮忙,谢谢了
    Vdyndql:='select var,a.aaa from aaa a'
    Execute immediate Vdynsql using var;
    这样为什么不行???
      

  8.   

    呵呵  你这是我付费你享受了...
    我也不是很清楚的...这样你看能行吗. ...
    Vdyndql:='select a.aaa from aaa a ';
    Execute immediate  Vdyndql||into  var;
      

  9.   

    Vdyndql:='select '||var||',a.aaa from aaa a';
    Execute immediate Vdynsql;