多语言MD5加密代码实现

PHP:

/**
 * PHP MD5 加密方法
 */
$string = '123456789'; //需要加密的字符串

$md5a = md5($string); //32位MD5
echo $md5a;

$md5b = substr(md5($string),8,16);  // 16位MD5加密
echo $md5b;


JAVA:

import java.security.MessageDigest;

public class MD5Util {
    /**
     * 把字节数组转成16进位制数
     *
     * @param bytes
     * @return
     */
    public static String bytesToHex(byte[] bytes) {
        StringBuffer md5str = new StringBuffer();
        //把数组每一字节换成16进制连成md5字符串
        int digital;
        for (int i = 0; i < bytes.length; i++) {
            digital = bytes[i];
            if (digital < 0) {
                digital += 256;
            }
            if (digital < 16) {
                md5str.append("0");
            }
            md5str.append(Integer.toHexString(digital));
        }
        return md5str.toString();
    }
 
    /**
     * 把字节数组转换成md5
     *
     * @param input
     * @return
     */
    public static String bytesToMD5(byte[] input) {
        String md5str = null;
        try {
            //创建一个提供信息摘要算法的对象,初始化为md5算法对象
            MessageDigest md = MessageDigest.getInstance("MD5");
            //计算后获得字节数组
            byte[] buff = md.digest(input);
            //把数组每一字节换成16进制连成md5字符串
            md5str = bytesToHex(buff);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return md5str;
    }
 
    /**
     * 将字符串进行md5加密
     *
     * @param str 需要进行加密的字符串
     * @return  加密后的字符串
     */
    public static String strToMD5(String str) {
        byte[] input = str.getBytes();
        return bytesToMD5(input);
    }
     
    public static void main(String[] args) {
     System.out.println(strToMD5("feng"));
    }
}


C#:

md5Object.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
 
 
namespace MD5_Project
{
    public class md5Object
    {
        //static void Main(string[] args)
        //{
        //    md5Object md5obj = new md5Object();
        //    //16位md5加密(或32位)
        //    Console.WriteLine(md5obj.md5("123456", 16));
        //}
 
        /// <summary>
        /// MD5加密
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        private string MD5(string text)
        {
            string str = "";
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] textBytes = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(text));
            foreach (int i in textBytes)
            {
                str += i.ToString("x2");
            }
            return str;
        }
        public string md5(string str, int code)
        {
            if (code == 16) //16位MD5加密(取32位加密的9~25字符) 
            {
                return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower().Substring(8, 16);
            }
 
            if (code == 32) //32位加密 
            {
                return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
            }
 
            return "00000000000000000000000000000000";
        }
    }
}

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MD5_Project;
using System.Diagnostics;
 
namespace Project_md5
{
    class Program
    {
        static void Main(string[] args)
        {
            md5Object md5obj = new md5Object();
            //16位md5加密(或32位)
            Debug.WriteLine(md5obj.md5("123456", 16));
            Console.WriteLine(md5obj.md5("123456", 16));
            Console.ReadLine();
        }
    }
}


python:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import hashlib
import md5

def main():
    #需要加密的字符串
    str = '1234679'

    #方法1(推荐):
    m2 = hashlib.md5()
    m2.update(str)
    sign2 = m2.hexdigest()
    print sign2

    #方法2:
    m = md5.new()
    m.update(str)
    sign = m.hexdigest()
    print sign

if __name__ == '__main__':
    main()


GO:

package main
import (
	"crypto/md5"
	"fmt"
	"encoding/hex"
)

func main(){
	md5Ctx := md5.New()
	md5Ctx.Write([]byte("1234679"))
	cipherStr := md5Ctx.Sum(nil)
//	fmt.Print(cipherStr)
//	fmt.Print("\n")
	fmt.Print(hex.EncodeToString(cipherStr))
}


登录 后可发表评论

    最新发布
    聚合数据©版权所有