gpt4 book ai didi

c# - 尝试从 Oracle 加密函数读取 DES3 加密值

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:13 25 4
gpt4 key购买 nike

我正在使用已经具有用于加密和解密的 oracle 函数的遗留系统,并且我正在使用 C# 中的 ODP.net 与 Oracle DB 进行通信。

我必须使用在 Oracle 中使用 DES3 加密算法的 oracle 加密函数来加密值,并使用此加密值从 Oracle 数据库读取数据。
我可以调用 Oracle 函数,它会进行加密,但它会返回带有一堆矩形的加密文本,这些矩形是无法隐藏的字符,因此当我使用此加密值从 Oracle 数据库读取数据时,它不起作用意味着什么都不返回。

我的问题是,我如何从 Oracle 加密函数中正确读取加密文本基本上我如何使用这个返回的加密文本从 oracle 数据库中读取数据?这个 oracle 加密函数接受一个要加密的输入参数并吐出加密值。任何想法在任何语言中都会有所帮助,C# 会很棒。

非常感谢您。上帝祝福你!R

最佳答案

我不是很清楚。

我假设您在 Oracle 中有加密的数据。您想要从表中提取该数据,然后使用 Oracle 函数对其进行解密。

当您加密数据时,您通常希望存储的是 RAW 或 BLOB,因为它不再是字符串,并且您不希望在其上发生任何类似字符集转换的字符串(例如,从字符中删除重音符号)。 RAW/BLOB 存储的替代方法是将字节转换为十六进制表示,但这会浪费大量存储空间,因此我不推荐这样做。

因此,第一步是确定 Oracle 数据是否存储为 RAW/BLOB、HEX,或者他们是否使用了 VARCHAR2 并始终使用相同的字符集以避免任何转换问题。如果是后者,确定数据库字符集(DBA 应该能够从 v$nls_parameters 中获取它,如果他不知道的话)。

基本上,您需要确保将与从数据库中提取的字节完全相同的字节插入解密算法。根据架构,您可以简单地做一个

SELECT decrypt(encrypted_column,:key_variable) FROM table WHERE id = ....;

关于c# - 尝试从 Oracle 加密函数读取 DES3 加密值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4522284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com