• c#DES和MD5加密与解密


    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Security.Cryptography;
    using System.Text;
    using System.IO;
    using System.Windows.Forms;
    /// <summary>
    /// DesEncrypt 的摘要说明
    /// </summary>
    public class DesMd5
    {
        public DesMd5()
        {
           //
           // TODO: 在此处添加构造函数逻辑
           //
        }
        /*
         //加密字符串,注意strEncrKey的长度为8位(如果要增加或者减少key长度,调整IV的长度就是了)
           public  string DesEncrypt(string strText, string strEncrKey)
    
         //解密字符串,注意strEncrKey的长度为8位(如果要增加或者减少key长度,调整IV的长度就是了)
           public string  DesDecrypt(string strText,string sDecrKey)
    
         //加密数据文件,注意strEncrKey的长度为8位(如果要增加或者减少key长度,调整IV的长度就是了)
           public void DesEncryptFile(string m_InFilePath,string m_OutFilePath,string strEncrKey)
    
         //解密数据文件,注意strEncrKey的长度为8位(如果要增加或者减少key长度,调整IV的长度就是了)
           public void DesDecryptFile(string m_InFilePath,string m_OutFilePath,string sDecrKey)
    
         //MD5加密
         public string MD5Encrypt(string strText)
       */

    /// <summary> /// Encrypt the string /// Attention:key must be 8 bits /// </summary> /// <param name="strText">string</param> /// <param name="strEncrKey">key</param> /// <returns></returns> public string DesEncrypt(string strText, string strEncrKey) { byte[] byKey = null; byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; try { byKey = System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0, 8)); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = Encoding.UTF8.GetBytes(strText); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); return Convert.ToBase64String(ms.ToArray()); } catch (System.Exception error) { // MessageBox.Show(error.Message); return "error:" + error.Message + "/r"; } }
    /// <summary> /// Decrypt string /// Attention:key must be 8 bits /// </summary> /// <param name="strText">Decrypt string</param> /// <param name="sDecrKey">key</param> /// <returns>output string</returns> public string DesDecrypt(string strText, string sDecrKey) { byte[] byKey = null; byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; byte[] inputByteArray = new Byte[strText.Length]; try { byKey = System.Text.Encoding.UTF8.GetBytes(sDecrKey.Substring(0, 8)); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); inputByteArray = Convert.FromBase64String(strText); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); System.Text.Encoding encoding = new System.Text.UTF8Encoding(); return encoding.GetString(ms.ToArray()); } catch (System.Exception error) { // MessageBox.Show(error.Message); return "error:" + error.Message + "/r"; } }
    /// <summary> /// Encrypt files /// Attention:key must be 8 bits /// </summary> /// <param name="m_InFilePath">Encrypt file path</param> /// <param name="m_OutFilePath">output file</param> /// <param name="strEncrKey">key</param> public void DesEncryptFile(string m_InFilePath, string m_OutFilePath, string strEncrKey) { byte[] byKey = null; byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; try { byKey = System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0, 8)); FileStream fin = new FileStream(m_InFilePath, FileMode.Open, FileAccess.Read); FileStream fout = new FileStream(m_OutFilePath, FileMode.OpenOrCreate, FileAccess.Write); fout.SetLength(0); //Create variables to help with read and write. byte[] bin = new byte[100]; //This is intermediate storage for the encryption. long rdlen = 0; //This is the total number of bytes written. long totlen = fin.Length; //This is the total length of the input file. int len; //This is the number of bytes to be written at a time. DES des = new DESCryptoServiceProvider(); CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write); //Read from the input file, then encrypt and write to the output file. while (rdlen < totlen) { len = fin.Read(bin, 0, 100); encStream.Write(bin, 0, len); rdlen = rdlen + len; } encStream.Close(); fout.Close(); fin.Close(); } catch (System.Exception error) { MessageBox.Show(error.Message, "错误信息"); // MessageBox.Show(error.Message.ToString()); } }
    /// <summary> /// Decrypt files /// Attention:key must be 8 bits /// </summary> /// <param name="m_InFilePath">Decrypt filepath</param> /// <param name="m_OutFilePath">output filepath</param> /// <param name="sDecrKey">key</param> public void DesDecryptFile(string m_InFilePath, string m_OutFilePath, string sDecrKey) { byte[] byKey = null; byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; try { byKey = System.Text.Encoding.UTF8.GetBytes(sDecrKey.Substring(0, 8)); FileStream fin = new FileStream(m_InFilePath, FileMode.Open, FileAccess.Read); FileStream fout = new FileStream(m_OutFilePath, FileMode.OpenOrCreate, FileAccess.Write); fout.SetLength(0); //Create variables to help with read and write. byte[] bin = new byte[100]; //This is intermediate storage for the encryption. long rdlen = 0; //This is the total number of bytes written. long totlen = fin.Length; //This is the total length of the input file. int len; //This is the number of bytes to be written at a time. DES des = new DESCryptoServiceProvider(); CryptoStream encStream = new CryptoStream(fout, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write); //Read from the input file, then encrypt and write to the output file. while (rdlen < totlen) { len = fin.Read(bin, 0, 100); encStream.Write(bin, 0, len); rdlen = rdlen + len; } encStream.Close(); fout.Close(); fin.Close(); } catch (System.Exception error) { MessageBox.Show(error.Message, "错误信息"); //MessageBox.Show("error:" + error.Message); } }
    /* /// <summary> /// MD5 Encrypt /// </summary> /// <param name="strText">text</param> /// <returns>md5 Encrypt string</returns> public string MD5Encrypt(string strText) { MD5 md5 = new MD5CryptoServiceProvider(); byte[] result = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(strText)); return System.Text.Encoding.Default.GetString(result); } */
    ///MD5加密 public string MD5Encrypt(string pToEncrypt, string sKey) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt); des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); StringBuilder ret = new StringBuilder(); foreach (byte b in ms.ToArray()) { ret.AppendFormat("{0:X2}", b); } ret.ToString(); return ret.ToString(); } ///MD5解密 public string MD5Decrypt(string pToDecrypt, string sKey) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = new byte[pToDecrypt.Length / 2]; for (int x = 0; x < pToDecrypt.Length / 2; x++) { int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16)); inputByteArray[x] = (byte)i; } des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); StringBuilder ret = new StringBuilder(); return System.Text.Encoding.Default.GetString(ms.ToArray()); } //哈希加密 public string HashEncrypt(string plain) { byte[] buffer = System.Text.Encoding.UTF8.GetBytes(plain); System.Security.Cryptography.SHA1CryptoServiceProvider sha = new System.Security.Cryptography.SHA1CryptoServiceProvider(); byte[] hash = sha.ComputeHash(buffer); System.Text.StringBuilder passwordBuilder = new System.Text.StringBuilder(32); foreach (byte hashByte in hash) { passwordBuilder.Append(hashByte.ToString("x2")); } return passwordBuilder.ToString(); } }
  • 相关阅读:
    上标<sup>与下标<sub>
    Java7基础教程 Jay Bryant著 李鹏 韩智译
    Error:Could not find com.android.tools.build:gradle:2.14.1.
    nginx-rtmp-module安装笔记
    Page Scroll using Selenium WebDriver
    个人家庭宽带搭建多域名web网站服务器配置
    phpmyadmin mysql Access denied for user 'root'@'localhost'问题解决
    sizeWithFont 取消后
    根据size截取图片中间矩形区域的图片 这里的size是正方形
    给UIImageView添加点击事件
  • 原文地址:https://www.cnblogs.com/lgx5/p/13838438.html
Copyright © 2020-2023  润新知