有这样一个需求,在.net中需要将oracle数据库里的一张表加密,在取出来时直接解密,怎么实现

有这样一个需求,在.net中需要将oracle数据库里的一张表加密,在取出来时直接解密,怎么实现,第1张

oracle自带的加密和解密方法如果是同一个DESDECRYPT,那么肯定会在参数里面说明区别和用法,我对此方法不了解也就是说对这个方法的参数使用不了解,但用法应该类似如下:

insert into mytable(FieldA,FieldB) values('AAAAAA',自带方法('BBBBB',其他参数))

---对插入B列的内容加密

select FieldA,自带方法(FieldB,其他参数) as FieldB from mytable

---对存放在B列的内容解密

加密的字符串一般是在 程序当中生产的比如现在流行的16位 md5加密码。一般都是在程序当中对用户输入的 真实密码。进行一个MD5加密,会生产一个加密码。然后按需要截取其中16位。在把这16位MD5加密码 字符串 存取在数据库当中。在用户登入的时候。用户会输入真的密码在进行加密截取。然后和数据库当中的进行比较。如果成功则true反之为fasle

没有

下载oracle数据库软件并解压。点击setupexe,选择安装。

2关闭电脑的防火墙,再继续安装。这里选择默认安装路径。

3点击下一步,如果出现下面的情况,先删除安装目录下的所有的文件,再点击选择“是”,进入下一步。

4点击“安装”就进入安装程序阶段。

MD5解密方法

我在存储数据库的时候,通过md5加密方法将字段进行加密,当我在读取该字段时如何正确的读取原来的值啊

------解决方案--------------------

没办法,MD5是不可逆的。

你需要使用可逆加密算法。

------解决方案--------------------

插入表中的时候md5加密

比如:

$sql= "insert into register(names,pswd,repswd) values( '$_POST[names] ',md5( '$_POST[pswd] '),md5( '$_POST[repswd] ')) ";

$qid=mysql_query($sql);

读取的时候

$pswd=empty($_POST[ 'pswd ']) ' ':md5($_POST[ 'pswd ']);

------解决方案--------------------

如果业务要求可还原,那么不要采用MD5,请使用可逆加密算法,如DES加密。

MD5为不可逆散列算法,可用于存储用户密码,存储后不需要永远不需要知道明文。密码比较时只需将用户输入的密码再次转成MD5码与存储的相比较即可得知用户输入密码是否正确。

linux/unix *** 作系统一般采用MD5进行用户密码加密。

------解决方案--------------------

MD5目前所谓的破解只是采用碰撞法找到了对等因子。

比如:string1的MD5码为MD1,而现在我们做到的只是又找到了一个string2,它的MD5码也是MD1。

结果就是:用户登陆某采用MD5加密的系统时,本来密码是12345,现在可能用abcde也能登陆。

想想可能还原吗?如果可以还原,那天大的信息也能用32位长的字符串表示了,这不成了超级压缩算法了吗,整个宇宙的信息都可以用32位长表示了。不可逆的!

可以例用Oracle

自带的Wrap工具实现,此工具在$ORACLE_HOME/BIN目录下,具体如下

1、设置字符集环境变量

set

NLS_LANG=CHINESE_CHINAZHS16GBK

2、创建一个存储过程文件

在E:\下创建testsql文件,内容如下:

create

or

replace

procedure

test1(i

in

number)

as

begin

dbms_outputput_line('

输入参数是'||to_char(i));

end;

3、加密

c:\>

cd

%ORACLE_HOME%\BIN

c:\>wrap

iname=e:\test1sql

PL/SQL

Wrapper:

Release

81700

-

Production

on

Tue

Nov

27

22:26:48

2001

Copyright

(c)

Oracle

Corporation

1993,

2000All

Rights

Reserved

Processing

test1sql

to

test1plb

4、运行test1plb

sqlplus

/nolog

SQL>conn

TEST/TEST@db01

SQL>

@e:\aplb

过程已创建。

5、运行存储过程

SQL>

set

serveroutput

on

SQL>

execute

test1(1);

输入参数是1

PL/SQL

过程已成功完成。

6、查看存储过程的代码

SQL>

select

name,text

from

all_source

where

type='PROCEDURE'

and

name='TEST1';

结果:看不到其原码

以上就是关于有这样一个需求,在.net中需要将oracle数据库里的一张表加密,在取出来时直接解密,怎么实现全部的内容,包括:有这样一个需求,在.net中需要将oracle数据库里的一张表加密,在取出来时直接解密,怎么实现、如何将密码加密后存入oracle数据库、oracle数据库有自带的加密解密功能吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10204668.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存