.Net對圖片加密解密的方法

可能有朋友想對一張圖片加密?(這樣的描述是否很奇怪。)

然后自己可以解密,而別人不行?

那么不妨有個思路就是讀入文件,然后對其二進制代碼進行加密~揭秘的時候反之即可。

下面是演示代碼~

創(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)

成都定制網(wǎng)站建設(shè)