c# 如何利用异或运算进行简单加密解密
利用“^”异或运算对字符串进行加密
原理:按位做“异或”运算是->位值相同得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();
}
c# 如何利用异或运算进行简单加密解密的更多相关文章
- [PHP][位转换积累]之异或运算的简单加密应用
异或的符号是^.按位异或运算, 对等长二进制模式按位或二进制数的每一位执行逻辑按位异或操作. 操作的结果是如果某位不同则该位为1, 否则该位为0. xor运算的逆运算是它本身,也就是说两次异或同一个数 ...
- JavaSE——装饰设计模式+简单加密解密工程
2019独角兽企业重金招聘Python工程师标准>>> 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础 ...
- leetcode136 利用异或运算找不同的元素
Given an array of integers, every element appears twice except for one. Find that single one. Note: ...
- 用C语言简单加密解密
使用char表示的字符型数据,在本质上与我们前面介绍的整型数据并无太大的区别,只是char类型占用的内存字节数更小,能够表示的数据范围更小而已.在使用上,char被专门用来表示C语言的字符集中的各种字 ...
- webconfig简单加密解密
<?xml version="1.0"?><configuration> <configSections> <section name=& ...
- 如何通过php 使用异或(XOR)加密/解密文件
laravel代码如下: /** * @param $q * @param $k * @return string 异或加解密 */ public function jiajiemi($q,$k){ ...
- php 简单加密解密
<?php namespace App\Service; /* * @link http://kodcloud.com/ * @author warlee | e-mail:kodcloud@q ...
- Python_字符串简单加密解密
def crypt(source,key): from itertools import cycle result='' temp=cycle(key) for ch in source: resul ...
- SQL SERVER 数据库字段简单加密解密
--------加密函数----------- )) RETURNS varbinary(max) AS BEGIN declare @pwd varbinary(max) SELECT @pwd = ...
随机推荐
- 设计模式学习笔记--备忘录(Mamento)模式
写在模式学习之前 什么是设计模式:在我们进行程序设计时,逐渐形成了一些典型问题和问题的解决方式,这就是软件模式:每个模式描写叙述了一个在我们程序设计中常常发生的问题,以及该问题的解决方式:当我们碰到模 ...
- Django—— 缓存框架
译者注:1.无用的,吹嘘的说辞不翻译:2.意译,很多地方不准确. 动态网站最为重要的一点就是好,网页是动态的.每一次用户请求页面,网站就要进行各种计算——从数据库查询,到render模板,到各种逻辑运 ...
- REDIS 内存满时删除策略
REDIS 内存满时删除策略
- MongoDB笔记(二):MongoDB下Shell的基本操作
一.mongoDB与关系型数据库对比 对比项 mongoDB 关系型数据库(oracle.mysql) 表 集合List 二维表table 表的一行数 ...
- TCP/IP ---互联网的地址
互联网上的每个接口必须有一个唯一的I n t e r n e t地址(也称作I P地址). I P地址长32 bit.I P地址具有一定的结构,五类不同 的互联网地址格式如图1 - 5所示. 这些3 ...
- javascript跨浏览器事件对象类库
一.前言 学习了javascript事件后,个人总结归纳了跨浏览器事件对象类库,方便以后使用,现分享给大家. 二.事件对象封装 将对浏览器事件对象的操作封装成eventObject.js方便调用 // ...
- 61. Search for a Range【medium】
61. Search for a Range[medium] Given a sorted array of n integers, find the starting and ending posi ...
- waterfall.js
jq-waterfall是一款仿Pinterest网站的响应式无限动态加载图片瀑布流特效jQuery插件.该瀑布流特效使用ajax调用来动态加载图片,达到无限加载的效果.它使用简单,兼容性好,值得推荐 ...
- IDEA 2017破解 license server激活
确保电脑在联网状态,在激活窗口选择license server 填入下面的license server: http://intellij.mandroid.cn/ http://idea.imsxm. ...
- GCD - Extreme (II) for(i=1;i<N;i++) for(j=i+1;j<=N;j++) { G+=gcd(i,j); } 推导分析+欧拉函数
/** 题目:GCD - Extreme (II) 链接:https://vjudge.net/contest/154246#problem/O 题意: for(i=1;i<N;i++) for ...