用hash去存储用户密码

来源:互联网 发布:js do while循环 编辑:程序博客网 时间:2024/06/05 19:54

1.db2的function:

create function tvc.pwdEncrypt(password varchar(20))
returns varchar(90)
fenced
threadsafe
deterministic
allow parallel
no sql
returns null on null input
no external action
language java
parameter style java
external name 'com.ibm.mbps.tvc.util.TvcPwdEncrypt!pwdEncrypt';

2./*
 * OCO Source Materials
 *
 * Licensed Materials -
 *
 * 5747-SM3
 *
 * (C) Copyright Corp. 2011  All Rights Reserved.
 *
 * US Government Users Restricted Rights - Use, duplication or
 * disclosure restricted by Schedule Contract with IBM Corp.
 */

package com.xxx.mbps.tvc.util;

import java.security.MessageDigest;

import COM.ibm.db2.app.UDF;

import com.ibm.misc.BASE64Encoder;

public class TvcPwdEncrypt extends UDF {
    public static String pwdEncrypt(String password) {
        if (password == null) {
            return null;
        }

        try {
            MessageDigest md = MessageDigest.getInstance("SHA512");
            byte[] input = password.trim().getBytes();
            md.update(input);
            byte[] buf = md.digest();
            BASE64Encoder be = new BASE64Encoder();
            String result = be.encode(buf);
            // remove \r \n
            result = result.replaceAll("\n", "").replaceAll("\r", "");
            return result;
        } catch (Exception e) {
            return null;
        }
    }
}