暂无图片
分享
Light
2019-06-04
mysql加密解密方法

Oracle的加密方法如何对应的转换为MySQL的方法如何编写?

//Oracle加密方案

/************************************start******************************************/

FUNCTION FN_ENC(I_STRING IN VARCHAR2) RETURN VARCHAR2 IS

    

    O_RTN256 VARCHAR2(256);    


    V_ENCRYPTED_RAW  RAW (2000);     -- encryption raw type date


    V_KEY_BYTES_RAW  RAW (32);       -- encryption key (32raw => 32byte => 256bit)


    V_ENCRYPTION_TYPE PLS_INTEGER := DBMS_CRYPTO.ENCRYPT_AES256

                                                + DBMS_CRYPTO.CHAIN_CBC

                                                + DBMS_CRYPTO.PAD_PKCS5;


    BEGIN

        IF I_STRING IS NOT NULL THEN

        

            V_KEY_BYTES_RAW := UTL_I18N.STRING_TO_RAW('key0123456789', 'AL32UTF8');

            V_ENCRYPTED_RAW := DBMS_CRYPTO.ENCRYPT ( src => UTL_I18N.STRING_TO_RAW(I_STRING, 'AL32UTF8'),

                                                                          typ => V_ENCRYPTION_TYPE,

                                                                          key => V_KEY_BYTES_RAW

                                                                         );

           

            O_RTN256 := UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.BASE64_ENCODE(V_ENCRYPTED_RAW));

        

        END IF;


    RETURN O_RTN256;

    

    END FN_ENC;

/************************************end******************************************/


收藏
分享
2条回答
默认
最新
lastwinner

找到公开的算法,如AES256的,翻译为Mysql的写法就行。

挨个翻译相应的函数或常量,最后按oracle里写的逻辑组合一下,就可以在mysql上得到等价的FN_ENC函数了。


此事并不难,但可能会比较复杂一些。

暂无图片 评论
暂无图片 有用 0
Cui Hulong
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏