c# 图片加密解密的实例代码
代码:
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 = new byte[fs.Length]; //读流文件 fs.Read(inputByteArray, , (int)fs.Length); //关闭流 fs.Close(); //获得加密字符串二进制字符 byte[] keyByteArray = Encoding.Default.GetBytes(keyStr); //计算指定字节组指定区域哈希值 SHA1 ha = new SHA1Managed(); byte[] hb = ha.ComputeHash(keyByteArray); //加密密钥数组 byte[] sKey = new byte[]; //加密变量 byte[] sIV = new byte[]; for (int i = ; i < ; i++) sKey[i] = hb[i]; for (int i = ; i < ; i++) sIV[i - ] = hb[i]; //获取加密密钥 des.Key = sKey; //设置加密初始化向量 des.IV = sIV; MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, , inputByteArray.Length); cs.FlushFinalBlock(); fs = File.OpenWrite(savePath); foreach (byte b in ms.ToArray()) { www.jbxue.com 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 = new byte[fs.Length]; //读取流文件 fs.Read(inputByteArray, , (int)fs.Length); //关闭流 fs.Close(); //密钥数组 byte[] keyByteArray = Encoding.Default.GetBytes(keyStr); //定义哈希变量 SHA1 ha = new SHA1Managed(); //计算指定字节组指定区域哈希值 byte[] hb = ha.ComputeHash(keyByteArray); //加密密钥数组 byte[] sKey = new byte[]; //加密变量 byte[] sIV = new byte[]; for (int i = ; i < ; i++) sKey[i] = hb[i]; for (int i = ; i < ; i++) sIV[i - ] = hb[i]; //获取加密密钥 des.Key = sKey; //加密变量 des.IV = sIV; MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, , inputByteArray.Length); cs.FlushFinalBlock(); fs = File.OpenWrite(savePath); foreach (byte b in ms.ToArray()) { fs.WriteByte(b); } fs.Close(); cs.Close(); ms.Close(); } #endregion } }
c# 图片加密解密的实例代码的更多相关文章
- Base64加密解密原理以及代码实现(VC++)
Base64加密解密原理以及代码实现 转自:http://blog.csdn.net/jacky_dai/article/details/4698461 1. Base64使用A--Z,a--z,0- ...
- cocos2dx图片加密解密(npk方式)
话不多说,直接开始: 准备的工具: 链接:https://pan.baidu.com/s/1Om4kBNWcG2jL_RTsHqqzpQ 提取码:bv7i npkCreate.exe是加密图片的工具, ...
- php实现图片加密解密,支持加盐
一个简单的图片加解密函数 使用client跑,不要使用浏览器跑 qq845875470 ,技术交流 <?php /** * Created by hello. * User: qq 845875 ...
- RSA 加密解密使用实例
http://www.dtmao.cc/news_show_692109.shtml 本文不讨论RSA加密解密本身,只记录使用方法及遇到的坑,RSA原理及注意事项可在网上查找. 背景:公司的一个需求, ...
- Base64加密解密原理以及代码实现
1. Base64使用A--Z,a--z,0--9,+,/ 这64个字符. 2. 编码原理:将3个字节转换成4个字节( (3 X 8) = 24 = (4 X 6) )先读入3个字节,每读一个字 ...
- RSA非对称加密(java实例代码)
使用RSA对WebService传递的信息加密解密的基本思想是:服务器端提供一个WebService方法String getServerPublicKey(),客户端可以以此得到服务器端的公钥,然后使 ...
- 基于RSA的加密/解密示例C#代码
using System;using System.Security.Cryptography;using System.Text; class RSACSPSample{ static void M ...
- php结合md5的加密解密算法实例
<?php /* * Created on 2016-12-22 * */ function encrypt($data, $key){ $key = md5($key); $x = 0; $l ...
- js, javascript 图片懒加载 实例代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- SAML2.0 协议初识(三)——IDP
IDP,即提供身份认证服务的一端,通常,当 IDP 接收到 SP 发送的 SAML 认证请求后,解析 SAMLRequest 参数,包括 acs 地址.SP EntityId.绑定方式.是否加密等信息 ...
- sqoop从hdfs 中导出数据到mysql
bin/sqoop export \ --connect "jdbc:mysql://mini1:3306/study?useUnicode=true&characterEncodi ...
- debian下为arm开发板创建基于debian或emdebian的根文件系统
Debian系统本身包含对arm的支持,其包含的软件包最多,但是最终的文件系统要大一些. emdebian 是一个非常好用的嵌入式linux操作系统,其基于debian的特点对于熟悉debian系统的 ...
- Nginx + PHP-FPM + MySQL + phpMyAdmin on Ubuntu (aliyun)
今天抽空在阿里云上部署安装了PHP的环境 主要有nginx, php5 php-fpm mysql phpmyadmin 本文来源于:http://www.lonelycoder.be/nginx-p ...
- 【积累】javascript tips代码段
1.json转字符串 function json2str(o) { var arr = []; var fmt = function (s) { if (typeof s == 'object' &a ...
- C0304 备份最后一天所有修改的文件
#! /bin/bash backupfile=backup-$(date +%m-%d-%Y) archive=${1:-$backupfile} # 上边内容, 参数替换 ${} echo $ar ...
- 尽管以C++为基础,但 Java 是一种更纯粹的面向对象程序设计语言
“尽管以C++为基础,但 Java 是一种更纯粹的面向对象程序设计语言”. 无论C++还是Java 都属于杂合语言.但在 Java 中,设计者觉得这种杂合并不象在 C++里那么重要.杂合语言 允许采用 ...
- Windows下RabbitMQ安装,部署,配置
安装部署 1.当前环境以及参考资料出处 部署环境:windows server 2008 r2 enterprise 官方安装部署文档:http://www.rabbitmq.com/install- ...
- 【机器学习】WIFI室内定位
WIFI室内定位-指纹法 在A1区域内每个点上采集四个WiFi的信号数据(信号强度),五点.九点.十六点采样. 5*5=25区域*16数据=400样本,用来训练 样本数 R B G1 G2 1 2 ...
- python3----练习题(弹幕跟随)
# 导入模块 import requests # 1. 网络请求 2.pip install requests import time # 用于时间控制 import random # 随机模块 产生 ...