利用“^”异或运算对字符串进行加密

原理:按位做“异或”运算是->位值相同得1,不同得0,如下计算

1 ^ 1 = 0

1 ^ 0 = 1

0 ^ 1 = 1

0 ^ 0 = 0

例如:

< 加密过程:>

原解释的二进制为          1  1  0  0   ----原文

设定的key的二进制为     0  1  1  0  ----密钥

两者做“异或”结果为    0  1  0  1 ----密文

< 解密过程:>

0  1  0  1 ----密文

             0  1  1  0  ----密钥

两者“异或”就得到了  1  1  0  0 ----原文

使用c# 实现如下:

  /// <summary>
/// 异或的加密解密
/// </summary>
/// <param name="str">原文/密文字符串</param>
/// <returns>原文/密文字符串</returns>
public static string BCutEncrypt(string str)
{
char emblem = '\n';//密钥
StringBuilder buffer = new StringBuilder();
char[] chars = str.ToCharArray();
foreach(char ch in chars)
{
char temp = (char)(ch ^ emblem);
buffer.Append(temp);
}
return buffer.ToString();
}

最新文章

  1. mysql 设置max_allowed_packet 大小的办法
  2. C#中combobox不可编辑与不可选择
  3. Android之通过向WebService服务器发送XML数据获取相关服务
  4. HTML xmlns
  5. SSIS_TXT有规则资料导入到EXCEL
  6. ReactiveCocoa入门教程——第二部分(转)
  7. C#使用SOAP调用Web Service
  8. MinGW安装教程
  9. C语言,数据类型
  10. 使用React Native一年后的感受
  11. eclipse jsp html 格式化 format
  12. 个人从源码理解angular项目在JIT模式下的启动过程
  13. ASP.NET Core轻松入门之Middleware管道模型
  14. Git官方推荐用书
  15. 2018年web最新面试知识点总结
  16. mysql命令行导入结构化数据
  17. hibernate_annotation字段映射位置
  18. Vue组件的定义方式
  19. 一个进程间同步和通讯的 C# 框架
  20. C语言实现全排列和回溯法总结

热门文章

  1. servlet--百度百科
  2. 【Java】Java_08 字符型与布尔值
  3. C#运用反射调用其他程序集中的代码
  4. Java之旅(2)—反射
  5. SVN环境搭建(2)
  6. 使用SVN管理unityproject
  7. javascript (function() { /* code */ })() 自执行函数
  8. poj 3666 河南省第七届程序设计D题(山区修路)
  9. 使用pycharm手动搭建python语言django开发环境 - 使用git管理代码(二)
  10. Vue 组件3 作用域插槽