欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

db2字段加密有关问题

更新时间: 2014-01-05 02:23:05 责任编辑: Author_N1

 

db2字段加密问题
对字段进行加密时,如果字段存储不为二进制,则加密可以成功,但是解密是报错。
如果字段类型为二进制则可以解密成功,请问这是什么原因!

例:
create table test(test_Id intefer,test_value varchar(50));
DB20000I  SQL 命令成功完成。
insert into test values(1,encrypt('a',111222));
DB20000I  SQL 命令成功完成。
select test_id,decrypt_char(test_value,111222) from test;
SQL0171N  例程 "SYSIBM.DECRYPT" 的位置 "1"
中参数的自变量数据类型、长度或值不正确。参数名:""。  SQLSTATE=42815

将字段存储改为二进制:
delete from test;
alter table test alter column test_value set data type varchar(50) for bit data;
reorg table test;
insert into test values(1,encrypt('a',111222));
结果:
1 a
--参考方法--
因为ENCRYPT函数返回的数据类型是 VARCHAR FOR BIT DATA,所以你不应该在表中将数据类型定义为VARCHAR. DECRYPT函数接受的参数也是 BIT DATA 的,所以你表定义中是VARCHAR时,说参数类型不匹配。

--因此
--加密字段必须用二进制存储
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:23:05
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9153/
本文WWW.DOC100.NET DOC100.NET版权所有。