博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【.NET】MD5的用法(对文件、字符串)
阅读量:6966 次
发布时间:2019-06-27

本文共 2466 字,大约阅读时间需要 8 分钟。

using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace ConsoleApp_PreventFileTampering {
class Program {
static void Main(string[] args) {
//TestGetFileHash(); TestGetMd5(); } #region 通过Hash值来验证文件是否被篡改 public static void TestGetFileHash() {
string fileHash = ""; while (true) {
fileHash = GetFileHash(@"C:\error.txt"); Console.WriteLine("文件MD5-HASH值为:{0}", fileHash); Console.ReadKey(); //手动修改文件试试,HASH值会变化 //手动将刚才的修改恢复,HASH值会还原 } } /// /// 通过Hash值来验证文件是否被篡改 /// /// 文件路径 ///
输出Hash值
public static string GetFileHash(string argFilePath) {
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider()) using (FileStream fs = new FileStream(argFilePath, FileMode.Open, FileAccess.Read, FileShare.Read)) {
return BitConverter.ToString(md5.ComputeHash(fs)).Replace("-", ""); } } #endregion #region 对字符串用MD5加密 public static void TestGetMd5() {
while (true) {
Console.WriteLine("输入要加密的字符串:"); string input = Console.ReadLine(); string md5 = GetMd5Hash2(input); Console.WriteLine("输出的加密字符串为:" + md5 + "\r\n"); Console.ReadLine(); } } /// /// 将字符串转换成MD5值存储 /// 【直接使用本方法加密MD5是不安全的,可以通过穷举法获得加密前的字符串】 /// /// 输入的字符串 ///
输出的MD5值
public static string GetMd5Hash(string argInput) {
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider()) {
return BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(argInput))).Replace("-", ""); } } /// /// 多次使用MD5值以及内部拼hashKey法,增加穷举破解的难度 /// /// 输入的字符串 ///
输出特殊处理过的MD5值
public static string GetMd5Hash2(string argInput) {
string hashKey = "Kae@#$@!,.Js+{f>.294oE"; using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider()) {
string hashCode = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(argInput))) .Replace("-", "") + BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(hashKey))) .Replace("-", ""); return BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(hashCode))).Replace("-", ""); } } #endregion } }

转载地址:http://lfisl.baihongyu.com/

你可能感兴趣的文章
基于 HTML5 WebGL 的 3D 场景中的灯光效果
查看>>
怎么样才能让工作经验值钱
查看>>
TP框架如何开启log日志
查看>>
hackathon活动复盘
查看>>
matplotlib 学习总结
查看>>
使用xUnit为.net core程序进行单元测试(2)
查看>>
BI并不是万能,中层业务管理报表要另辟蹊径
查看>>
Python CGI编程
查看>>
XShell命令行使用
查看>>
EularProject 41:最长的n位Pandigital素数问题
查看>>
《iOS Human Interface Guidelines》——Container View Controller
查看>>
深入理解net core中的依赖注入、Singleton、Scoped、Transient(四)
查看>>
通俗版《区块链白皮书》:你要掌握的区块链基本知识
查看>>
2-SAT速成
查看>>
Perl的新特性开启
查看>>
IoT固/软件更新及开源选项
查看>>
集群扩容的常规解决:一致性hash算法
查看>>
树莓派的媒体播放软件omxplayer
查看>>
宁波智慧教育云平台
查看>>
Android项目实战(五):TextView自适应大小
查看>>