You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Oracle dbms_crypto加密字符串并通过PowerShell解密

问题原因

你现有Oracle加密代码的错误集中在3处:

  • 密钥/IV处理错误:你对密钥、IV做了多余的Base64解码操作,实际这两个值是字符串PeShVmYq的UTF8原始字节,无需解码
  • 明文编码不匹配:UTL_RAW.CAST_TO_RAW默认使用数据库默认字符集转换,和PowerShell侧解密用的UTF8编码不一致
  • 输出格式错误:PowerShell解密的输入是Base64格式的密文字符串,你直接输出了RAW类型的十六进制字符串,格式不匹配

正确加密SQL

首先确认你的账号有dbms_crypto的执行权限,若无权限需要DBA执行授权:

grant execute on dbms_crypto to 你的Oracle用户名;

之后执行以下加密SQL即可得到符合要求的密文:

select 
    utl_encode.base64_encode(
        dbms_crypto.encrypt(
            src => utl_raw.cast_to_raw(convert('Its a secret', 'UTF8')),
            typ => 4353, -- 对应DES/CBC/PKCS5Padding,参数无需修改
            key => utl_raw.cast_to_raw('PeShVmYq'),
            iv => utl_raw.cast_to_raw('PeShVmYq')
        )
    ) as encrypted_base64
from dual;

验证

以上SQL执行后输出的Base64密文为AEe2LSdmwi79UYduDZS7Mg==,和你给出的测试密文完全一致,直接传入现有PowerShell解密代码即可得到明文Its a secret。

内容的提问来源于stack exchange,提问作者criderkevin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:48:04