md5算法
MD5算法
最近看了一个MD5的视频,突然发现MD5挺意思的,所以记录一下代码(写好封装),没准以后要用。也为一些寻找md5算法的人提供便利。
MD5的特点
MD5不管是小到一个字符或一串字符还是大到一个视频或者一个好几十G的文件,都会把它转化成一个固定长度的16位进制拼接而成的字符串。MD5最大的特点是不可反向编译可以说是不可解码,网上有一些说能破解MD5数据的人。他们都是通过正向编译然后一次次比对而得出的,通过正向循环编译,当然循环编译也通过代码的好坏决定了破解MD5的速度。所以MD5在密码的保护上我觉得比一般的加密解密文件包要好得多。(有一点要注意,可能会出现这种状况全世界可能有两个数据的MD5的编码是一样的,这个原理我就不说了,但是这种的可能性,在一个程序中出现的概率不外乎有人去百慕大三角溜达一圈完好无损的回来)
MD5就介绍到这里了,上代码了
我用的是vs2012控制台编写的(C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;
namespace md5
{
class Program
{
static void Main(string[] args)
{
}
public string GetMD5String(string str)
{
stringbuilder sb = new StringBuilder();
//创建一个MD5值对象
using (MD5 md5 = MD5.Create())
{
//把字符串转化为byte数组
byte[] bytes = System.Text.Encoding.Default.GetBytes(str);
//调用md5方法进行计算
byte[] md5Byte = md5.ComputeHash(bytes);
//把结果以字符串形式返回
for (int i = 0; i < md5Byte.Length; i++)
{
//将可变的字符序列拼接
//x2代表16进制以小写不省略0位写(列:0a 02)
sb.APPend(md5Byte[i].ToString("x2"));
}
}
return sb.ToString();
}
}
}
根据.net的要求MD5算法接收的是byte[] 所以在string转化的时候要注意字符编码,同一个string根据不同的字符编码转化成的结果是不同的,感兴趣的小伙伴可以看看它的命名空间和参数等。(如果我没说到的地方或知识点请在评论留言)
文章最后发布于: 2018-10-16 00:05:11
相关阅读
吐槽 国庆假期第二天,去实验室开门,给猫猫铲丑丑,然后给她换猫粮,换水,喂这货吃的emmmmmm,然后今天就把之前在极客时间上买的数据结构与
前几天我在笔记本电脑上用plsql连接oracle数据库时提示ORA-12154: TNS: 无法解析指定的连接标识符,遇到这种问题我就用常规解决方
Metropolis准则——以概率接受新状态 固体退火问题介绍 退火是指将固体加热到足够高的温度,使分子呈随机排列状态,然后逐步降温
运动最佳装备,戴上Jabra Elite Active 65t去打卡
想劈叉、想旋转、想自在伸展?想骑单车、想跑半马、想专心瑜伽?又快要到年末了,你的健身愿望实现了多少?听说运动装备够给力,才会让健身
nginx 502 Bad Gateway错误可能原因及解决方法
用是lnmp,参考: https://lnmp.org/faq/lnmp-Nginx-502-Bad-Gateway.html 本人是第九种原因,解决了