C# Base64编码、AES等编码加、解密
Base64
以下加密首先转换成GBK编码,再返回Base64解析后的数据
/// <summary>/// Base64加密(GBK格式)/// </summary>/// <param name="Message"></param>/// <returns></returns>public static string Base64Code(string rel){if (string.IsNullOrEmpty(rel)) return "";//byte[] bytes = Encoding.Default.GetBytes(rel);var buffer = Encoding.GetEncoding("GBK").GetBytes(rel);return Convert.ToBase64String(buffer);}
图片转base64
/// <summary>/// 图片转base64/// </summary>/// <param name="Imagefilename">图片文件地址</param>/// <returns></returns>public static string ImgToBase64String(string Imagefilename){try{Bitmap bmp = new Bitmap(Imagefilename);MemoryStream ms = new MemoryStream();bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);byte[] arr = new byte[ms.Length];ms.Position = 0;ms.Read(arr, 0, (int)ms.Length);ms.Close();String strbaser64 = Convert.ToBase64String(arr);return strbaser64;}catch (Exception ex){//LogHelper.Debug(ex);return "";}}
/// <summary>/// 将PDF转换图片/// </summary>/// <param name="pdfInputPath">PDF文件路径</param>/// <param name="imageOutputPath">图片输出路径</param>/// <param name="imageName">生成图片的名字</param>/// <param name="startPageNum">从PDF文档的第几页开始转换</param>/// <param name="endPageNum">从PDF文档的第几页开始停止转换</param>/// <param name="imageFormat">设置所需图片格式</param>/// <param name="definition">设置图片的清晰度,数字越大越清晰</param>public static string[] PdfToJPEG(string pdfInputPath, string imageOutputPath,string imageName, int startPageNum, int endPageNum, ImageFormat imageFormat, int definition){List<string> outFileList = new List<string>();PDFFile pdfFile = PDFFile.Open(pdfInputPath);if (!Directory.Exists(imageOutputPath)){Directory.CreateDirectory(imageOutputPath);}// pdf pageNumif (startPageNum <= 0){startPageNum = 1;}if (endPageNum > pdfFile.PageCount){endPageNum = pdfFile.PageCount;}if (startPageNum > endPageNum){int tempPageNum = startPageNum;startPageNum = endPageNum;endPageNum = startPageNum;}// 转换每一页if (endPageNum == 1){Bitmap pageImage = pdfFile.GetPageImage(1 - 1, 56 * (int)definition);pageImage.Save(imageOutputPath + imageName + "." + imageFormat, imageFormat);pageImage.Dispose();outFileList.Add(imageOutputPath + imageName + "." + imageFormat);}else{for (int i = startPageNum; i <= endPageNum; i++){Bitmap pageImage = pdfFile.GetPageImage(i - 1, 56 * (int)definition);pageImage.Save(imageOutputPath + imageName + i + "." + imageFormat, imageFormat);pageImage.Dispose();outFileList.Add(imageOutputPath + imageName + i + "." + imageFormat);}}pdfFile.Dispose();return outFileList.ToArray(); ;}
AES/CBC/PKCS5
/// <summary> /// AES/CBC/PKCS5 加密/// </summary> /// <param name="encryptStr">明文</param> /// <param name="key">密钥</param> /// <returns></returns>protected static string Encrypt(string encryptStr, string key, string IV){if (string.IsNullOrEmpty(encryptStr)) return null;var _aes = new AesCryptoServiceProvider();_aes.BlockSize = 128;_aes.KeySize = 256;_aes.Key = Encoding.UTF8.GetBytes(key);_aes.IV = Encoding.UTF8.GetBytes(IV); //(byte[])(object)new sbyte[16];_aes.Padding = PaddingMode.PKCS7;_aes.Mode = CipherMode.CBC;var _crypto = _aes.CreateEncryptor(_aes.Key, _aes.IV);byte[] encrypted = _crypto.TransformFinalBlock(Encoding.UTF8.GetBytes(encryptStr), 0, Encoding.UTF8.GetBytes(encryptStr).Length);_crypto.Dispose();return System.Convert.ToBase64String(encrypted);}
/// <summary>/// 解密 AES/CBC/PKCS5 /// </summary>/// <param name="decryptStr">需解密字符串</param>/// <param name="key">密钥</param>/// <param name="IV">偏移量</param>/// <returns></returns>public static string Decrypt(string decryptStr, string key, string IV){if (string.IsNullOrEmpty(decryptStr)) return null;var _aes = new AesCryptoServiceProvider();_aes.BlockSize = 128;_aes.KeySize = 256;_aes.Key = Encoding.UTF8.GetBytes(key);_aes.IV = Encoding.UTF8.GetBytes(IV);// (byte[])(object)new sbyte[16];_aes.Padding = PaddingMode.PKCS7;_aes.Mode = CipherMode.CBC;var _crypto = _aes.CreateDecryptor(_aes.Key, _aes.IV);byte[] decrypted = _crypto.TransformFinalBlock(System.Convert.FromBase64String(decryptStr), 0, System.Convert.FromBase64String(decryptStr).Length);_crypto.Dispose();return Encoding.UTF8.GetString(decrypted);}
C# Base64编码、AES等编码加、解密相关推荐
- aes 256 ecb 加解密 pkcs7补全 python JS
python aes 256 ecb 加解密 功能 实现 Python ECB 256 JS版本 ECB 算法 JS版本 CBC 算法Pkcs7填充 SQL AES 在线验证网站 notice 功能 ...
- aes加密算法python语言实现_如何用Python实现AES CCM的加解密
1.简介 AES CCM被广泛应用于现代通讯中,在学习过程中需要验证数据的加解密的结果,那么有个方便修改的Python脚本工具就是一个迫切的需求. 2. 实施 我们下面介绍如何实现AES CCM的Py ...
- Java实现Base64、DES、AES、RSA加解密以及加密方式之间的区别
Base64 加密, 这个其实不可以算作加密方法,它可以看作是一种编码方式,它的用途只是二进制数字和字符串进行相互转化. Base64是网络上最常见的用于传输 8Bit字节码的编码方式之一,是一种基于 ...
- RSA+AES数字信封加解密设计
登录认证.鉴权这些都做好了过后.就开始我们的加密设计了.这里采用了简化数字信封进行加密.首先客户端(浏览器)先请求一份RSA非对称密钥.如果我们采用了openresty或者有能力在nginx开发C模块 ...
- JavaIO流加解密,AES对字符串加解密
加解密文件? 哈哈哈哈,当然是为了安全,自己的东西不像让别人看见. 1,学了JavaIO流的字节流的读取写入,便可实现. 加密原理: 把文件读取,然后,按某个特定的规则改变其字节写入一个新文件. 解密 ...
- python实现AES对文件加解密(这里使用ECB密码本模式)
文章目录 1.加密 2.解密 pip install pycryptodome 请注意加解密成功的前提条件 加解密密匙key值相同 加解密密匙长度相同 加解密补长度的逻辑相同 加解密的模式相同 1.加 ...
- java aes解密算法_使用java实现AES算法的加解密(亲测可用)
话不多说,直接上代码 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto ...
- Python使用AES算法进行加解密
本文要点在于Python扩展库pycrypto实现了大量密码学算法,可以拿来直接使用. import string import random from Crypto.Cipher import AE ...
- 记一个在线工具网站,程序员必备,json格式化、压缩、转义,加解密 编码解码
为你工具 ToForU-在线json格式化|在线json压缩|在线json转义|工具大全 提供 json格式化,json代码压缩,json校验解析,json数组解析,json转xml,xml转json ...
- Java使用AES加解密
Java使用AES加解密 目录 1.1生成密钥 1.2密钥的存储 1.3获取存储的密钥 1.4加解密 1.5使用存储的密钥进行加解密示例 AES是一种对称的加密算法,可基于相同的密钥进行加密和解密.J ...
最新文章
- ES查看segment大小
- 选择性模糊及其算法的实现。
- [UWP]了解IValueConverter
- 把 textbox 遍历赋值为空
- 有助于建立使用者对套件的信任 GitHub释出管理服务
- python第一周小测验_Python第一周小结
- windows无法发现任何计算机或设备,Win10系统提示windows无法与设备或资源通信如何解决...
- 【Hadoop Summit Tokyo 2016】云上的大象
- HomeBrew 安装 国内源
- c++多线程基础4(条件变量)
- xhtml 1.0与html4.0区别大全
- bzoj 3513: [MUTC2013]idiots FFT
- linux孟庆昌第六章课后题_第六章 参数估计-矩估计:通过课后题理解矩估计
- 大型网站限流算法的实现和改造
- Welcome to Xiao
- Android免root字体,字体大师免root
- 网站被攻击了怎么办?
- cortex a7 a53_镜头测试:蔡司红T28/2.8+索尼微单A7实拍北京景山公园
- 设计并编写代码自动格斗类游戏
- xcode提交app时出现icon缺少167.png图片的问题