C#实现加密的几种方法介绍
作者:農碼一生 发布时间:2022-12-12 22:38:00
标签:C#,加密
1.ACSII码加密
//ACSII码加密
private static string ACSIIPWd(string rpwd)
{
string Ret;
byte[] array = System.Text.Encoding.ASCII.GetBytes(rpwd);
byte[] byteArray = new byte[array.Length];
for (int i = 0; i < array.Length; i++)
{
int asciicode = (int)(array[i]);
asciicode = asciicode + 1;
byteArray[i] = (byte)asciicode;
}
System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
string strCharacter = asciiEncoding.GetString(byteArray);
Ret = strCharacter;
return Ret;
}
2.MD5加密
//MD5加密
private static string MD5PWd(string rpwd)
{
string Ret;
MD5 md5 = new MD5CryptoServiceProvider();
byte[] palindata = Encoding.Default.GetBytes(rpwd);//将要加密的字符串转换为字节数组
byte[] encryptdata = md5.ComputeHash(palindata);//将字符串加密后也转换为字符数组
Ret = Convert.ToBase64String(encryptdata);
return Ret;
}
3.RSA加密
//RSA加密
private static string RSAPWD1(string myKeyContainerName)
{
string ret = "";
CspParameters cp = new CspParameters();
cp.KeyContainerName = myKeyContainerName;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);
ret = rsa.ToXmlString(true);
Console.WriteLine("Key is : \n" + rsa.ToXmlString(true));
return ret;
}
4.DES加密
//DES加密
private static string DESPWD(string ciphertext)
{
string desPWD = "";
byte[] buffer;
DESCryptoServiceProvider DesCSP = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream();//先创建 一个内存流
CryptoStream cryStream = new CryptoStream(ms, DesCSP.CreateEncryptor(), CryptoStreamMode.Write);//将内存流连接到加密转换流
StreamWriter sw = new StreamWriter(cryStream);
sw.WriteLine(ciphertext);//将要加密的字符串写入加密转换流
sw.Close();
cryStream.Close();
buffer = ms.ToArray();//将加密后的流转换为字节数组
desPWD = Convert.ToBase64String(buffer);//将加密后的字节数组转换为字符串
return desPWD;
}
来源:https://www.cnblogs.com/wml-it/p/12978564.html


猜你喜欢
- 前言早就听说Go语言开发的服务不用任何架构优化,就可以轻松实现百万级别的qps。这得益于Go语言级别的协程的处理效率。协程不同于线程,线程是
- 本文介绍restTemplate基础用法。Java中get和post的用法请参考:一文带你搞懂Java中Get和Post的使用1 提供get
- 目录类划分时关于内聚性的问题静态类的设计高内聚类的设计附:面向过程编程中模块的内聚性偶然内聚或巧合内聚(Coincidental)逻辑内聚(
- 收费版本:Rainbow Brackets免费版本:Rainbow Brackets Lite介绍一款可以将 (圆括号) [方括号] {花括
- 一、代码实例实现功能将Array转换为List将List转换为Array将Array转换为Dictionary将Dictionary转换为A
- [LeetCode] 169. Majority Element 求大多数Given an array nums of
- Canvas,在英语中,这个单词的意思是帆布。在Android中,则把Canvas当做画布,只要我们借助设置好的画笔(Paint类)就可以在
- using System;using System.Collections.Generic;using System.Linq; using
- 一、前言在日常工作中,如果涉及到与第三方进行接口对接,有的会使用WebService的方式,这篇文章主要讲解在.NET Framework中
- 面试题1:说说什么分布式事务?解释一下什么是CAP?现在互联网开发多使用微服务架构,一个简单的操作,在服务端可能就是由多个服务和数据库实例协
- 序言在flutter开发中,我们使用 bloc 框架,基于状态变更进行响应式开发。本篇文章,小轰将 bloc 核心业务块进行拆解简化,聊一聊
- 详解xamarin Android 实现ListView万能适配器早些时候接触xamarin Android 的列表,写了很多ListVie
- Java与Scala创建List与Map//JavaList<String> languages = new ArrayList
- 众所周知在android7.0,修改了对私有存储的限制,导致在获取资源的时候,不能通过Uri.fromFile来获取uri了我们需要适配7.
- 一、导入外部DLL函数如[DllImport(“kernel32.dll”)]这叫引入kernel3
- 有这么一种应用场景:你是做前端或APP开发的,需要调用服务端提供的接口,接口只能在公司内网访问;在公司外就无法调试代码了。想在公司外访问怎么
- 如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程序同时支持HTTP和HT
- 继承的概念继承是面向对象编程中的一个概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。子类在继承父类的同时也
- 本文实例讲述了Java实现指定线程执行顺序的三种方式。分享给大家供大家参考,具体如下:方法一:通过共享对象锁加上可见变量来实现。public
- 前言  大部分的web开发者,开发的业务都是基于Http协议的:前端请求后端接口,携带参数,后端执行业务