oracle加密的用法即注意事项

1.oracle中base64编码说明

oracle的base64签名并不像编程语言或者mysql的base64签名那样直观,
在编程语言或许你只需要base64("编码内容")就好了,但是在oracle当中要达到相同的效果,需要经历三个步骤:如下

BEGIN
  DBMS_OUTPUT.PUT_LINE(
      utl_raw.cast_to_varchar2(
          utl_encode.BASE64_ENCODE(
              UTL_RAW.CAST_TO_RAW('test'))));
END;

2.AES加密

oracle自带多种加密算法,但加密算法一般由三部分组合而成
密钥位数:AES192 DBMS_CRYPTO.ENCRYPT_AES192
连接方式:CBC DBMS_CRYPTO.CHAIN_CBC
填充方式:PKCS5 DBMS_CRYPTO.PAD_PKCS5

单纯的AES加密过后,返回的为16进制字符串

--AES加密
BEGIN
  DBMS_OUTPUT.PUT_LINE(
      dbms_crypto.Encrypt(
          UTL_RAW.CAST_TO_RAW(--待加密内容需转换成RAW类型,否则会报错
            'test'--待加密内容
          ),
          dbms_crypto.AES_CBC_PKCS5,--密钥位数+连接方式+填充方式
          '12345678901234561234567890123456'--秘钥
));
END;

单纯的经过aes加密后的结果:


aes加密.png

一般情况下,先经过aes加密,再经过base64签名,这样得到的内容比较小,能节省空间

--aes加密过后再经过base64进行签名
BEGIN
  DBMS_OUTPUT.PUT_LINE(
      utl_raw.cast_to_varchar2(
          UTL_ENCODE.BASE64_ENCODE(
              dbms_crypto.Encrypt(UTL_RAW.CAST_TO_RAW('test'),
                                  dbms_crypto.AES_CBC_PKCS5,
                                  '12345678901234561234567890123456'))
      ));
END;
aes加密过后再经过base64签名的结果.png

3AES解密

解密可以看做加密的逆向处理过程,先将密文由base64解签,再解密,解密后转换成RAW对象便能恢复加密前的效果;当然解密的密钥得和加密的密钥一致

BEGIN
  DBMS_OUTPUT.PUT_LINE(
  utl_raw.cast_to_varchar2(
      dbms_crypto.Decrypt(utl_encode.BASE64_DECODE(UTL_RAW.CAST_TO_RAW('edgjBzMCq0lLXpXir7+Fcg==')),
                          dbms_crypto.AES_CBC_PKCS5,
                          '12345678901234561234567890123456')));
END;
aes解密的效果图.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇文章主要讲述在Mobile BI(移动商务智能)开发过程中,在网络通信、数据存储、登录验证这几个方面涉及的加密...
    雨_树阅读 7,898评论 0 6
  • 概述 之前一直对加密相关的算法知之甚少,只知道类似DES、RSA等加密算法能对数据传输进行加密,且各种加密算法各有...
    Henryzhu阅读 8,148评论 0 14
  • 1 基础 1.1 对称算法 描述:对称加密是指加密过程和解密过程使用相同的密码。主要分:分组加密、序列加密。 原理...
    御浅永夜阅读 7,303评论 1 4
  • 步骤: 1.登录sshroot@x.x.x.x 2.更新yum-yupdate 3.centOS 系统下编译源代码...
    张领阅读 3,602评论 0 0
  • 常用命令 ls     显示文件或目录  -l     列出文件详细信息  -a     列出当前目录下所有文件...
    鸡仔说阅读 1,144评论 0 0