求助DB2 MD5算法函数!
时间:2007-07-23
来源:互联网
作者: haods 发布时间: 2007-07-23
作者: haods 发布时间: 2007-07-24
import java.io.*;
import java.security.*;
public class MyUDF {
public static int putLine(String inLine) throws Exception {
int outCount = 0;
try {
outCount = inLine.length();
File writefile = new File("TraceOut.log");
if (writefile.exists() == false) {
writefile.createNewFile();
writefile = new File("TraceOut.log");
}
FileWriter filewriter = new FileWriter(writefile, true);
filewriter.write("[" + "Timestamp" + "] " + inLine + "\n");
filewriter.flush();
filewriter.close();
} catch (Exception d) {
System.out.println(d.getMessage());
}
return outCount;
}
public static String MD5(String s) throws Exception {
String s1 = new String("");
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
try {
byte[] strTemp = s.getBytes();
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md;
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
s1 = new String(str);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return s1;
}
}
搞个java的udf
[ 本帖最后由 大梦 于 2007-7-24 13:40 编辑 ]
作者: 大梦 发布时间: 2007-07-24
作者: lizhuo 发布时间: 2007-07-25
加密码的结果与标准MD5的对不上!
[ 本帖最后由 大梦 于 2007-7-25 11:18 编辑 ]
作者: 大梦 发布时间: 2007-07-25
作者: haods 发布时间: 2007-07-25
import java.security.*;
import COM.ibm.db2.app.*;
public class MyUDF extends UDF {
public static String MD5(String s) throws Exception {
String s1 = new String(""

char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
try {
byte[] strTemp = s.getBytes();
MessageDigest mdTemp = MessageDigest.getInstance("MD5"

mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md;
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
s1 = new String(str);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return s1;
}
}
DROP FUNCTION MD5;
CALL sqlj.remove_jar('Md5UDF');
CALL sqlj.install_jar('file

CREATE FUNCTION MD5(varchar(8

RETURNS INTEGER
EXTERNAL NAME 'Md5UDF:MyUDF!MD5'
FENCED
SCRATCHPAD 10
FINAL CALL
VARIANT
NO SQL
PARAMETER STYLE DB2GENERAL
LANGUAGE JAVA
NO EXTERNAL ACTION
;
values md5('00000000');
出错:
SQL4304N 具有特定名称 "SQL070725192051200" 的 Java 存储过程或用户定义的函数
"ORAFUN.MD5"不能装入 Java 类 "MyUDF",原因码为 "2"。 SQLSTATE=42724
db2 =>
请大家帮我分析一下是什么原因?
作者: haods 发布时间: 2007-07-25
作者: haods 发布时间: 2007-07-25
CALL sqlj.remove_jar('Md5UDF');
CALL sqlj.install_jar('file

CREATE FUNCTION ORAFUN.MD5(VARCHAR(8

RETURNS VARCHAR(70)
EXTERNAL NAME 'MD5UDF:MyUDF!MD5'
FENCED
VARIANT
NO SQL
EXTERNAL ACTION
LANGUAGE JAVA
PARAMETER STYLE JAVA
;
values orafun.md5('00000000');
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
import java.io.*;
import java.security.*;
import COM.ibm.db2.app.*;
public class MyUDF extends UDF {
public static String MD5(String s) throws Exception {
String s1 = new String(""

char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e', 'f' };
try {
byte[] strTemp = s.getBytes();
MessageDigest mdTemp = MessageDigest.getInstance("MD5"

mdTemp.update(strTemp);
byte[] md = mdTemp.digest();
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md;
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
s1 = new String(str);
} catch (Exception e) {
System.out.println(e.getMessage());
}
return s1;
}
}
作者: haods 发布时间: 2007-07-25
http://bbs.chinaunix.net/viewthr ... &extra=page%3D3
作者: 大梦 发布时间: 2007-07-25
作者: hoootong 发布时间: 2010-09-29
作者: hoootong 发布时间: 2010-09-29
作者: hoootong 发布时间: 2010-09-29
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28