各类程序MD5加密写法
在信息系统中,用户的密码一般需要加密,并且需要无法解密,以避免密码泄露,所以一般选择MD5加密方式,再使用BASE64编码成可显示字符。
1.Oracle PL/SQL
CREATE OR REPLACE FUNCTION Get_MD5Base64(p_str IN VARCHAR2) -- 明文字符串
RETURN VARCHAR2 -- 密文
IS
BEGIN
IF p_str IS NULL THEN
RETURN NULL;
END IF;
-- 用MD5摘要算法转换成密文,并使用BASE64编码成可显示字符.
RETURN utl_raw.cast_to_varchar2(utl_encode.base64_encode(dbms_obfuscation_toolkit.MD5(input => utl_raw.cast_to_raw(p_str))));
END;
2.C#
using System.Security.Cryptography;
namespace Security
{
public class Encryption
{
public static string GetMD5(string sourceString)
{
MD5 md = new MD5CryptoServiceProvider();
byte[] bytes = System.Text.ASCIIEncoding.ASCII.GetBytes(sourceString);
byte[] hash = md.ComputeHash(bytes);
return Convert.ToBase64String(hash, 0, hash.Length);
}
}
}
3.Java
package cn.gymsoft.security;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import sun.misc.BASE64Encoder;
public class Md5 {
//得到MD5消息摘要,并用BASE64编码成可显示字符串.
public static String encrypt(String message){
try {
MessageDigest md = MessageDigest.getInstance("md5");
byte md5[] = md.digest(message.getBytes());
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(md5);
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
}
}