本人用java写了个DES的加密类想在DB2里面调用然后将数据值加密将DES。class已经拷贝到IBM\SQLLIB\FUNCTION目录下后createfunctionencrypt_des(strvarchar(100))returnsvarchar(100)fe...
本人用java 写了个DES的加密类
想在DB2里面调用然后将数据值加密
将DES。class已经拷贝到IBM\SQLLIB\FUNCTION目录下后
create function encrypt_des(str varchar(100))
returns varchar(100)
fenced
variant
no sql
language java
PARAMETER STYLE java
external name 'DES!encrypt';
用一下脚本创建函数成功
在测试的时候 values(encrypt_des('123'));
报错如下
[Error Code: -4306, SQL State: 42724] DB2 SQL Error: SQLCODE=-4306,
SQLSTATE=42724,
SQLERRMC=DB2ADMIN.ENCRYPT_DES;SQL120822162338500;encrypt;(Ljava/lang/String;)Lj,
DRIVER=3.50.152
这里网上的资料很少,请知道的大牛帮忙解答下,十分感谢~
public String byteArr2HexStr(byte[] arrB) throws Exception {
int iLen = arrB.length;
StringBuffer sb = new StringBuffer(iLen * 2);
for (int i = 0; i < iLen; i++) {
int intTmp = arrB[i];
while (intTmp < 0) {
intTmp = intTmp + 256;
}
if (intTmp < 16) {
sb.append("0");
}
sb.append(Integer.toString(intTmp, 16));
}
return sb.toString();
}
public String encrypt(String strIn) throws Exception {
return byteArr2HexStr(encrypt(strIn.getBytes()));
}
java 代码如上
http://www.blogjava.net/yrJavaWorld/archive/2006/07/21/59363.html
通过以上帖子 搞定了这个问题
解决问题还是得静下心来呀
展开