C#中对字符串的加密和解密
加密:
/// <summary>
/// 对字符串进行加密
/// </summary>
/// <param name="proclaimText"></param>
/// <returns></returns>
public static string CipherText(string proclaimText)
{
if (proclaimText.IsEmpty()) return proclaimText; byte[] proclaimBytes = UnicodeEncoding.BigEndianUnicode.GetBytes(proclaimText);
int proclaimBytesCount = proclaimBytes.Length;
byte[] cipherBytes = new byte[proclaimBytesCount * 2]; for (int i = 0; i < proclaimBytesCount; i += 2)
{
byte proclaimByte = proclaimBytes[i];
int upperByte = proclaimByte & 0xf0;
int lowerByte = proclaimByte & 0x0f;
upperByte = upperByte >> 4;
lowerByte = lowerByte << 4; byte proclaimByte2 = proclaimBytes[i + 1];
int upperByte2 = proclaimByte2 & 0xf0;
int lowerByte2 = proclaimByte2 & 0x0f;
upperByte2 |= upperByte;
lowerByte2 |= lowerByte; cipherBytes[i * 2] = 0x4e;
cipherBytes[i * 2 + 1] = Convert.ToByte(upperByte2);
cipherBytes[(i + 1) * 2] = 0x4f;
cipherBytes[(i + 1) * 2 + 1] = Convert.ToByte(lowerByte2);
}
return UnicodeEncoding.BigEndianUnicode.GetString(cipherBytes, 0, cipherBytes.Length);
}
解密:
/// <summary>
/// 对字符串进行解密
/// </summary>
/// <param name="proclaimText"></param>
/// <returns></returns>
public static string DoProclaimText(string CipherText)
{
if (CipherText.IsEmpty()) return CipherText; byte[] cipherBytes = UnicodeEncoding.BigEndianUnicode.GetBytes(CipherText);
int cipherBytesCount = cipherBytes.Length; byte[] proclaimBytes = new byte[cipherBytesCount / 2]; for (int i = 0; i < cipherBytesCount; i += 4)
{
byte cipherByte1 = cipherBytes[i + 1];
byte cipherByte2 = cipherBytes[i + 3]; int lowerByte = (cipherByte1 & 0x0f) << 4;
int upperByte = cipherByte1 & 0xf0; int lowerByte2 = cipherByte2 & 0x0f;
int upperByte2 = (cipherByte2 & 0xf0) >> 4; proclaimBytes[i / 2] = Convert.ToByte(lowerByte | upperByte2);
proclaimBytes[i / 2 + 1] = Convert.ToByte(upperByte | lowerByte2);
}
return UnicodeEncoding.BigEndianUnicode.GetString(proclaimBytes, 0, proclaimBytes.Length);
}
C#中对字符串的加密和解密的更多相关文章
- MVC项目实践,在三层架构下实现SportsStore-10,连接字符串的加密和解密
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- ASP.NET数据库连接字符串的加密与解密
ASP.NET web.config中,数据库连接字符串的加密与解密. 虽然不怎么新鲜,但相信还是有许多人不知道,好,不说废话,直接给方法:开始--->运行,输入cmd,接着输入以下内容 加密: ...
- C#.NET中对称和非对称加密、解密方法汇总--亲测可用
C#.NET中对称和非对称加密.解密方法汇总--亲测可用 在安全性要求比较高的系统中都会涉及到数据的加密.解密..NET为我们封装了常用的加密算法,例如:MD5,DES,RSA等.有可逆加密,也有 ...
- 在C#中使用RSA进行加密和解密
这篇文章向您展示了如何在c#.net Windows窗体应用程序中使用RSA算法对字符串进行加密和解密.RSA是由Ron Rivest,Adi Shamir和Leonard Adleman开发的非对称 ...
- 【Java】通过DES加密和解密工具,对字符串进行加密和解密操作
分享一个非常不错的字符串加密和解密的程序. 可以指定不同的密钥对同一字符串进行不同的加密操作,增强加密性能. Java代码如下: package com.app; import java.securi ...
- Java 实现字符串的加密与解密
package com.wangbo.util; import java.security.Key; import java.security.Security; import javax.crypt ...
- java对字符串进行加密和解密(以下是来自其他博主)
背景:需要对读取数据库配置的文件进行加密,防止他人拿到数据,而对自己的代码,有要实现进行解密,网上给的加密方式,什么MD5,base64,还有等等,都太复杂,而且有些是单向的,只加密不解密,以下代码, ...
- C#一个字符串的加密与解密
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.S ...
- js对字符串进行加密和解密方法!
在做一些微信小程序,或混合 app 的时候,或者是考虑到一些 JS 数据安全的问题.可能会使用到 JS 对用户信息进行缓存. 例如在开发:微信小程序对用户进行加密缓存,开发混合APP对用户信息进行加密 ...
随机推荐
- [转]ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL
本文转自:http://www.cnblogs.com/John-Connor/archive/2012/05/03/2478821.html 引言-- 在初级篇中,我们介绍了如何利用基于ASP.NE ...
- 访问github.com太慢的解决方法
修改 c:\windows\system32\drivers\etc\host文件添加 192.30.255.112 github.com 151.101.72.249 github.global.s ...
- 关于line-height的理解(如何实现psd稿件上下文字距离为10px)
- mysql索引命中规则
转于:https://blog.csdn.net/claram/article/details/77574600 首先明确:为什么要用联合索引? 对于查询语句“SELECT E.* FROM E WH ...
- logging模块进阶2
1.两种级别设置: 全局级别:生成logger对象后设置的级别 局部级别:生成handler对象设置的级别 我们都知道输出的级别不能低于设定的级别,那么全局级别和局部级别哪一个对输出产生影响? 经过多 ...
- vs 2017 下 千万不要装force utf8 这个插件
千万不要装!!! 装了之后,传文件到linux系统下,各种xml和makefile报错(如下) Makefile:1: *** 遗漏分隔符 . 停止
- FragmentTabHost实现标签卡效果
转载请注明原文链接:http://www.cnblogs.com/yanyojun/p/8099523.html 代码已上传到github:https://github.com/YanYoJun/Fr ...
- SAP成都研究院安德鲁:自己动手开发一个Chrome Extension
各位好,我叫何金鑫(He Andrew), 团队同事亲切地称呼在下为安德鲁.如果你在附近找到wifi热点名为 「安德鲁森面包房5g」,可能是我就在附近,我们可以去喝杯咖啡,聊聊最近有趣的东西. 鄙人现 ...
- 11gR2集群件任务角色分离(Job Role Separation)简介
从11gR2版本开始,Oracle推荐使用不同的操作系统用户安装GI和数据库软件,例如:使用grid用户安装GI,使用Oracle用户安装数据库软件.当然,用户还是可以使用Oracle用户安装G ...
- js Math 对象
Math 对象方法 方法 描述 abs(x) 返回数的绝对值. acos(x) 返回数的反余弦值. asin(x) 返回数的反正弦值. atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值 ...