如题目:对一个字符串使用openssl的md5标准算法.....对加密出来的128bit原始数据 再进行base64编码(请贴实例)

解决方案 »

  1.   

    md5和base64都是通用算法
    随便哪个写的MD5、base64算出来的结果都一样。
    import java.io.IOException;
    import java.security.MessageDigest;import sun.misc.BASE64Encoder;
    import sun.misc.BASE64Decoder;/**
     * 本类提供通用的安全算法
     * @author
     */
    public class SecurityArithmetic {
    public final static byte[] md5(String s) {
    byte[] md=null;
    try {
    byte[] btInput = s.getBytes();
    MessageDigest mdInst = MessageDigest.getInstance("MD5");
    mdInst.update(btInput);
    md = mdInst.digest();
    }
    catch (Exception e) {
    // e.printStackTrace();
    return null;
    }
    return md;
    }

    public static String base64Encode(byte[] b){
    return new BASE64Encoder().encode(b);
    } public static byte[] base64Decode(String b){
    try {
    return new BASE64Decoder().decodeBuffer(b);
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    return null;
    }
    }

    public static String md5AndHex(String s){
    byte[] b=md5(s);
    String temp="";
    for (int i=0;i<b.length;i++){
    temp+=StringUtils.pad(Integer.toHexString(b[i] & 0xff), 2, '0', true);
    }
    return temp;
    }

    public static String md5AndBase64(String s){
    return base64Encode(md5(s));
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
    //d41d8cd98f00b204e9800998ecf8427e
    //d41d8cd98f00b204e9800998ecf8427e
    System.out.println(md5AndBase64("XXX"));
    System.out.println(md5AndHex(""));
    }}
      

  2.   

    这是OPENSSL的标准算法么?
      

  3.   

    MD5 BASE64算法是通用算法,跟OPENSSL没有关系