可能有朋友想對一張圖片加密?(這樣的描述是否很奇怪。)
然后自己可以解密,而別人不行?
那么不妨有個思路就是讀入文件,然后對其二進制代碼進行加密~揭秘的時候反之即可。
下面是演示代碼~
創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計,汝城網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:汝城等地區(qū)。汝城做網(wǎng)站價格咨詢:18982081108
using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; using System.IO; namespace Net.Template.Common { /// <summary> /// 對圖片的加密和解密 /// </summary> public class DEncrypt4ImageHelper { public DEncrypt4ImageHelper() { } #region 加密方法 圖片加密 /// <summary> /// 圖片加密 /// </summary> /// <param name="filePath">源文件</param> /// <param name="savePath">保存為文件名稱</param> /// <param name="keyStr">密鑰</param> public static void EncryptFile(string filePath, string savePath, string keyStr) { //通過des加密 DESCryptoServiceProvider des = new DESCryptoServiceProvider(); //通過流打開文件 FileStream fs = File.OpenRead(filePath); //獲取文件二進制字符 byte[] inputByteArray = newbyte[fs.Length]; //讀流文件 fs.Read(inputByteArray, 0, (int)fs.Length); //關(guān)閉流 fs.Close(); //獲得加密字符串二進制字符 byte[] keyByteArray = Encoding.Default.GetBytes(keyStr); //計算指定字節(jié)組指定區(qū)域哈希值 SHA1 ha = new SHA1Managed(); byte[] hb = ha.ComputeHash(keyByteArray); //加密密鑰數(shù)組 byte[] sKey = newbyte[8]; //加密變量 byte[] sIV = newbyte[8]; for (int i = 0; i < 8; i++) sKey[i] = hb[i]; for (int i = 8; i < 16; i++) sIV[i - 8] = hb[i]; //獲取加密密鑰 des.Key = sKey; //設(shè)置加密初始化向量 des.IV = sIV; MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); fs = File.OpenWrite(savePath); foreach (byte b in ms.ToArray()) { fs.WriteByte(b); } fs.Close(); cs.Close(); ms.Close(); } #endregion#region 解密方法 圖片解密 /// <summary> /// 圖片解密 /// </summary> /// <param name="filePath">源文件</param> /// <param name="savePath">保存文件</param> /// <param name="keyStr">密鑰</param> public static void DecryptFile(string filePath, string savePath, string keyStr) { //通過des解密 DESCryptoServiceProvider des = new DESCryptoServiceProvider(); //通過流讀取文件 FileStream fs = File.OpenRead(filePath); //獲取文件二進制字符 byte[] inputByteArray = newbyte[fs.Length]; //讀取流文件 fs.Read(inputByteArray, 0, (int)fs.Length); //關(guān)閉流 fs.Close(); //密鑰數(shù)組 byte[] keyByteArray = Encoding.Default.GetBytes(keyStr); //定義哈希變量 SHA1 ha = new SHA1Managed(); //計算指定字節(jié)組指定區(qū)域哈希值 byte[] hb = ha.ComputeHash(keyByteArray); //加密密鑰數(shù)組 byte[] sKey = newbyte[8]; //加密變量 byte[] sIV = newbyte[8]; for (int i = 0; i < 8; i++) sKey[i] = hb[i]; for (int i = 8; i < 16; i++) sIV[i - 8] = hb[i]; //獲取加密密鑰 des.Key = sKey; //加密變量 des.IV = sIV; MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); fs = File.OpenWrite(savePath); foreach (byte b in ms.ToArray()) { fs.WriteByte(b); } fs.Close(); cs.Close(); ms.Close(); } #endregion } }
分享題目:.Net對圖片加密解密的方法
轉(zhuǎn)載源于:http://bm7419.com/article36/gejesg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、網(wǎng)站內(nèi)鏈、外貿(mào)建站、網(wǎng)站收錄、移動網(wǎng)站建設(shè)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)