文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

多语言MD5加密代码实现

2024-04-02 19:55

关注

$string = '123456789'; //需要加密的字符串
 
$md5a = md5($string); //32位MD5
echo $md5a;
 
$md5b = substr(md5($string),8,16);  // 16位MD5加密
echo $md5b;

import java.security.MessageDigest;
 
public class MD5Util {
    
    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();
    }
  
    
    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;
    }
  
    
    public static String strToMD5(String str) {
        byte[] input = str.getBytes();
        return bytesToMD5(input);
    }
      
    public static void main(String[] args) {
     System.out.println(strToMD5("feng"));
    }
}
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";
        }
    }
}
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();
        }
    }
}
#!/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()
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))
}

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯