加密:

/// <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. iOS自带TTS技术的实现即语音播报

    文本转语音技术, 也叫TTS, 是Text To Speech的缩写. iOS如果想做有声书等功能的时候, 会用到这门技术. 一,使用iOS自带TTS需要注意的几点: iOS7之后才有该功能 需要 A ...

  2. Load average in Linux的精确含义

    Man 上的解释: load average System load averages is the average number of processes that are either in a ...

  3. C# 移动开发 MasterDetailPage 关闭时报错问题

    至上次发表的 MasterDetailPage界面做主App,折腾10天,终于知道问题所在.. 泪奔的是解决这个问题只要一句代码 在MainActivity.cs里 [Activity(Label = ...

  4. 使用docker搭建gitlab 服务器

    本次使用的docker版本为 1.首先需要安装docker. 2.启动docker后,service docker start   3.拉取镜像  docker pull gitlab/gitlab- ...

  5. php bz2扩展安装

    php bz2扩展安装 2017年09月22日 14:14:36 Cookie_1030 阅读数:1781   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...

  6. VBA Promming——入门教程

    VBA Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言.主要能用来 ...

  7. npm与cnpm

    npm介绍 说明:npm(node package manager)是nodejs的包管理器,用于node插件管理(包括安装.卸载.管理依赖等) 使用npm安装插件:命令提示符执行npm instal ...

  8. core下的routelink

    core mvc中 routelink返回和 framework mvc中返回的不一样,core中返回 IHtmlContent, 而 fw 中返回 MvcHtmlString 在写分页方法中用到了r ...

  9. 枚举 || CodeForces 742B Arpa’s obvious problem and Mehrdad’s terrible solution

    给出N*M矩阵,对于该矩阵有两种操作: 1.交换两列,对于整个矩阵只能操作一次 2.每行交换两个数. 交换后是否可以使每行都递增. *解法:N与M均为20,直接枚举所有可能的交换结果,进行判断 每次枚 ...

  10. HTML中 DOM操作的Document 对象详解(收藏)

    Document 对象Document 对象代表整个HTML 文档,可用来访问页面中的所有元素.Document 对象是 Window 对象的一个部分,可通过 window.document 属性来访 ...