加密:

/// <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#中对字符串的加密和解密的更多相关文章

  1. MVC项目实践,在三层架构下实现SportsStore-10,连接字符串的加密和解密

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

  2. ASP.NET数据库连接字符串的加密与解密

    ASP.NET web.config中,数据库连接字符串的加密与解密. 虽然不怎么新鲜,但相信还是有许多人不知道,好,不说废话,直接给方法:开始--->运行,输入cmd,接着输入以下内容 加密: ...

  3. C#.NET中对称和非对称加密、解密方法汇总--亲测可用

    C#.NET中对称和非对称加密.解密方法汇总--亲测可用   在安全性要求比较高的系统中都会涉及到数据的加密.解密..NET为我们封装了常用的加密算法,例如:MD5,DES,RSA等.有可逆加密,也有 ...

  4. 在C#中使用RSA进行加密和解密

    这篇文章向您展示了如何在c#.net Windows窗体应用程序中使用RSA算法对字符串进行加密和解密.RSA是由Ron Rivest,Adi Shamir和Leonard Adleman开发的非对称 ...

  5. 【Java】通过DES加密和解密工具,对字符串进行加密和解密操作

    分享一个非常不错的字符串加密和解密的程序. 可以指定不同的密钥对同一字符串进行不同的加密操作,增强加密性能. Java代码如下: package com.app; import java.securi ...

  6. Java 实现字符串的加密与解密

    package com.wangbo.util; import java.security.Key; import java.security.Security; import javax.crypt ...

  7. java对字符串进行加密和解密(以下是来自其他博主)

    背景:需要对读取数据库配置的文件进行加密,防止他人拿到数据,而对自己的代码,有要实现进行解密,网上给的加密方式,什么MD5,base64,还有等等,都太复杂,而且有些是单向的,只加密不解密,以下代码, ...

  8. C#一个字符串的加密与解密

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.S ...

  9. js对字符串进行加密和解密方法!

    在做一些微信小程序,或混合 app 的时候,或者是考虑到一些 JS 数据安全的问题.可能会使用到 JS 对用户信息进行缓存. 例如在开发:微信小程序对用户进行加密缓存,开发混合APP对用户信息进行加密 ...

随机推荐

  1. P2956 [USACO09OCT]机器人犁田The Robot Plow

    题目描述 Farmer John has purchased a new robotic plow in order to relieve him from the drudgery of plowi ...

  2. AJPFX关于表结构的相关语句

    //表结构的相关语句==================================== 建表语句: create table 表名(                                ...

  3. C++模板类头文件和实现文件分离

    http://www.cnblogs.com/lvdongjie/p/4288373.html 如何实现C++模板类头文件和实现文件分离,这个问题和编译器有关. 引用<<C++primer ...

  4. 不全屏显示、手柄不居中的SlidingDrawer

    SlidingDrawer是一个滑动式抽屉,通过点击或拖拽手柄(handle)来显示或隐藏内容(content). 看了很多关于SlidingDrawer的例子,但基本都是全屏显示,并且手柄居中的.我 ...

  5. 工作流activi链接地址

    http://topmanopensource.iteye.com/blog/1313865

  6. cc.Component

    组件入口函数1: onLoad: 组件加载的时候调用, 保证了你可以获取到场景中的其他节点,以及节点关联的资源数据;2: start: 也就是第一次执行 update 之前触发;3: update(d ...

  7. Shell读取一个表达式并计算其结果

    #!/bin/bash # 读取一个算数表达式并计算出结果 # 如果输入 # 5+50*3/20 + (19*2)/7 # 则结果为 # 17.929 read x printf "%.3f ...

  8. 三、C++ const分析

    1.C语言中的const: const修饰的变量是只读的,本质还是变量 const修饰的局部变量在栈上分配空间 const修饰的全局变量在只读存储区分配空间 const只在编译期有用,在运行期无效 c ...

  9. C++ Simple Message/Logging Class

    在 Qt的源码与Protobuf 的代码中,看到相同的简单消息(日志)输出的类实现,基本思路是使用宏定义,重载临时类对象,调用类方法或者通过析构函数自动调用输出方法,实现消息输出.这里以 Protob ...

  10. Dijkstra算法简单实现(C++)

    图的最短路径问题主要包括三种算法: (1)Dijkstra (没有负权边的单源最短路径) (2)Floyed (多源最短路径) (3)Bellman (含有负权边的单源最短路径) 本文主要讲使用C++ ...