C#NET字符编码加解密的参考代码

 //C#NET字符编码加解密的参考代码我是从老外程序里面拷贝出来的希望对大家有所用 1         public string Encrypt(string name) {
 2             byte ivId = GetIVId(name);
 3             cipher.IV = GetIV(ivId);
 4             var buf = Encoding.UTF8.GetBytes(name);
 5
 6             using (var ms = new MemoryStream()) {
 7                 ms.WriteByte(ivId);
 8                 using (var stream = new CryptoStream(ms, cipher.CreateEncryptor(), CryptoStreamMode.Write))
 9                     stream.Write(buf, 0, buf.Length);
10
11                 buf = ms.ToArray();
12                 return Base64Encode(buf);
13             }
14         }
15
16         public string Decrypt(string name) {
17             using (var ms = new MemoryStream(Base64Decode(name))) {
18                 byte ivId = (byte)ms.ReadByte();
19                 cipher.IV = GetIV(ivId);
20
21                 var result = new MemoryStream();
22                 using (var stream = new CryptoStream(ms, cipher.CreateDecryptor(), CryptoStreamMode.Read))
23                     stream.CopyTo(result);
24
25                 return Encoding.UTF8.GetString(result.ToArray());
26             }
27         }

原文地址:https://www.cnblogs.com/wz2988/p/12416558.html

时间: 2025-01-05 12:35:00

C#NET字符编码加解密的参考代码的相关文章

程序中对密码进行加解密的C代码示例

问题的提出 在实际的软件项目中,经常涉及到对密码的处理,如用户登录密码.数据库密码.FTP密码等.为了增加软件的灵活性,一般都要求将这些密码放到一个配置文件中.但密码原文容易记录,若被软件入侵者获取,则后果不堪设想.因此我们不能直接将密码原文填入配置文件中,而要先对密码进行加密,然后将加密之后的密文填入配置文件,等程序读取配置之后再进行解密处理. 整个流程如图1所示. 图1 加解密总体流程 示例程序流程 为了演示整个加解密的流程,设计了一个演示程序,其执行流程如图2所示. 图2 示例程序流程 示

数据库中的加解密问题

最近在学习.NET软件开发过程中,接触到了一个关于.NET数据库加解密的程序代码,感觉比较新颖,觉得随着网络安全的发展,数据库的加密会是众多博友都会遇上的问题,随分享之. 本数据库中数据采用MD5加密方式 MD5全程是Message-digest Algorithm5(信息-摘要算法),用于确保信息传输完整一致,他的作用是让大量信息在用数字签名加密软件签署私人密钥前被压缩成为一种保密的格式(就是把一个任意长度的字符串变换成一定长的大常熟). 在Microsoft.NET Framework中,S

【字符编码】Java字符编码详细解答及问题探讨

一.前言 继上一篇写完字节编码内容后,现在分析在Java中各字符编码的问题,并且由这个问题,也引出了一个更有意思的问题,笔者也还没有找到这个问题的答案.也希望各位园友指点指点. 二.Java字符编码 直接上代码进行分析似乎更有感觉.   运行结果:   说明:通过结果我们知道如下信息. 1. 在Java中,中文在用ASCII码表示为3F,实际对应符号'?',用ISO-8859-1表示为3F,实际对应符号也是为'?',这意味着中文已经超出了ASCII和ISO-8859-1的表示范围. 2. UTF

彻底搞懂字符编码(unicode,mbcs,utf-8,utf-16,utf-32,big endian,little endian...)[转]

最近有一些朋友常问我一些乱码的问题,和他们交流过程中,发现这个编码的相关知识还真是杂乱不堪,不少人对一些知识理解似乎也有些偏差,网上百度, google的内容,也有不少以讹传讹,根本就是错误的(例如说 unicode编码是两个字节),各种软件让你选择编码的时候,常常是很长的一个选单,让用户不知道该如何选.基于这样的问题,我就写下我的理解吧,一方面帮助一些需要帮助的人纠正认识,一方面作为自己以后备查的资料. 1. ASCII(American Standard Code for Informati

JAVA AES文件加解密

AES加解密算法,代码如下: /** * Created by hua on 2017/6/30. */ import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; public class AESUtil1 { //初始化向量,aes 16位 private static final String IV = "abcdefghijk1m

编码,加解密,签名,Hash

工作中会听到各种各样是是而非的词汇,base64,url,sha256,rsa,hash等等,你能很好的分清这些词语吗? 这次我想把它们统一的整理说明下: 一: 编码 编码是信息从一种形式或格式转换为另一种形式的过程,所以他们是可逆的,不能称之为加密. 下面列举几个常见的(参考编码那些事): html实体编码(10进制与16进制): 如把尖括号编码[ < ]  -----> html十进制: <  html十六进制:< javascript的八进制跟十六进制: 如把尖括号编码[ &

curses-键盘编码-openssl加解密【转】

本文转载自;https://zhuanlan.zhihu.com/p/26164115 1.1 键盘编码 按键过程:当用户按下某个键时, 1.键盘会检测到这个动作,并通过键盘控制器把扫描码(scan code)传送到计算机:键盘扫描码跟具体的硬件有关的,不同厂商对同一个键的扫描码有可能不同.2.计算机接收到扫描码后,将其交给键盘驱动程序:3.键盘驱动程序把这个扫描码转换为键盘虚拟码:虚拟码与具体硬件无关,不同厂商的键盘,同一个键的虚拟码总是相同的.然后,键盘驱动程序把该键盘操作的扫描码和虚拟码以

[C#参考]字符编码

微软的那个臭屁的JOEL(就是写<JOEL说软件>的那个牛人)曾说:“每一位软件开发人员必须.绝对要至少具备UNICODE与字符集知识(没有任何例外)”,我也常常困扰于字符集的转换等很多问题,所以这次下决心要把他搞个清楚. 有关字符编码的学习,在这篇blog中,就从两个程序开始: class TestDataGenerator { public static void CreateNewTestDataFile(string FileName, int record_length) { usi

6. Java 加解密技术系列之 3DES

Java 加解密技术系列之 3DES 序 背景 概念 原理 代码实现 结束语 序 上一篇文章讲的是对称加密算法 — — DES,这篇文章打算在 DES 的基础上,继续多讲一点,也就是 3 重 DES — — Triple DES. 背景 至于 3DES 为什么会出现呢?其实,这个不难想到.由于 DES 是一种非常简便的加密算法,但是密钥长度比较短,计算量比较小,相对来说,比较容易被破解.因此,在 DES 的基础上,使用三重数据加密算法,对数据进行加密,这样来说,破解的概率就小了很多. 概念 3D