XOR+base64加密
1.xor运算
1^0=1
0^0=0
1^1=0
23^32=55
55^32=23
23对32进行异或两次运算结果为23
2.XOR加密
设key=[]byte{1,2,3,4,5,6},src=[]byte{11,22,33,44,55,66,77,88,99}
将src与key左对齐进行异或位运算
for i:=0;i<len(src);i++{
src[i]^=key[i%len(key)]
}
获得的src即是加密后的[]byte数组
3.XOR解密
将加密后的src与key左对齐进行异或位运算
for i:=0;i<len(src);i++{
src[i]^=key[i%len(key)]
}
获得的src即是解密后的[]byte数组
4.XOR+base64进行加密
func main() {
key := "dGhpcyBpcyBhIGV4YW1wbGVjenh2enh2emZhc2ZhZmE"
str:="abcdefghijklmnopq"
strBase64:=base64.StdEncoding.EncodeToString([]byte(str))
fmt.Println("加密前:",strBase64)
// 1.对strBase64加密
enCodeStrBase64:=XorEncode(strBase64,key)
fmt.Println("加密后:",enCodeStrBase64)
// 2,对enCodeStrBase64解密
deCodeStrBase64:=XorDecode(enCodeStrBase64,key)
fmt.Println("解密:",deCodeStrBase64)
}
func xor(src []byte, key []byte) []byte {
for i := 0; i < len(src); i++ {
src[i] ^= key[i%len(key)]
}
return src
}
func XorDecode(src, key string) string {
srcByte, _ := base64.StdEncoding.DecodeString(src)
keyByte, _ := base64.StdEncoding.DecodeString(key)
srcByte = xor(srcByte, keyByte)
return base64.StdEncoding.EncodeToString(srcByte)
}
func XorEncode(src,key string)string{
return XorDecode(src,key)
}
输出结果:
加密前: YWJjZGVmZ2hpamtsbW5vcHE=
加密后: FQoKF0UPFEgISg4UDAMfHBQ=
解密: YWJjZGVmZ2hpamtsbW5vcHE=
XOR+base64加密的更多相关文章
- android Base64 加密
一 Base64加密 import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.OutputStre ...
- Js中 md5 sha1 base64 加密
js的3中加密方式: .sha1加密,加密性高 调用: var sha = hex_sha1(str); .base64加密 调用: var b = new Base64(); var str = b ...
- js base64加密,后台解密
这是为了解决页面发送post请求,传输密码,在页面的控制台可以看到密码的明文,所以先用base64把要传输的密码转换为非明文,然后在后台解密处理. base64encode.js // base64加 ...
- (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题
我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Bas ...
- Base64加密工具-iBlogs
简易的Base64加密工具开发步骤 1.编写Java测试桩 import java.io.BufferedReader; import java.io.IOException; import java ...
- JS实现base64加密解密
JS实现base64加密解密 转载自http://blog.csdn.net/fengzheng0306/archive/2006/04/25/676055.aspx 方法一: <HTML> ...
- 【代码笔记】iOS-3DES+Base64加密解密
一,工程目录. 二,代码. RootViewController.m #import "RootViewController.h" #import "NSString+T ...
- 实现Base64加密解密
using System; using System.Text; namespace Common { /// <summary> /// 实现Base64加密解密 /// </ ...
- IOS 杂笔-10(Base64 加密)
base64加密是可逆的,因此并不是很安全,在一些注重安全的地方很少用到,但是在普通传输中可以使用. 切忌,base64加密是不安全的. // // ViewController.m // CX-Ba ...
随机推荐
- rsync同步命令详解
一.rsync命令的解释sync(Synchronize,即“同步”)为UNIX操作系统的标准系统调用,功能为将内核文件系统缓冲区的所有数据(也即预定将通过低级I/O系统调用写入存储介质的数据)写入存 ...
- java_23 File类
1.File类定义: 文件和目录路径的抽象表达形式,java中将路径或者文件封装成File对象. 2.File类的静态成员变量(pathSeparator 分隔符,字符串 separat ...
- OSI网络七层协议+火了火了火
因为部门新进了一台价值百万的网络测试设备,所以有太大的必要了解有关网络相关的基础知识了. 网络七层协议OSI(open system interconnection)从上到下依次为:应用层.表示层.会 ...
- loadtxt()函数的糟心历程
原计划:导入一个csv文件,然后算出平均值 import numpy as np c=np.loadtxt('d:\python36\data.csv', delimiter=',', usecols ...
- 服务器安装ubuntu 14.04 server,开机启动屏幕不停滚动错误WRITE SAME failed. Manually zeroing
昨天给服务器上安装了一个Ubuntu-14.04-server系统,安装完成后系统可以正常启动,但屏幕上一直滚动着一个错误,sda1:WRITE SAME failed. Manually zeroi ...
- ubuntu无法打开software-center
ubuntu无法打开software-center BUG: 在ubuntu14.04LTS版本下,点击软件中心图标,过了一会软件未能启动,没有动静.用命令行启动报如下错误: perrin@Littl ...
- re、词云
正则: re.S使点也能匹配到\n:re.I不区分规则中的大小写:re.X忽略空格及#后的注释:re.M把^和$由文首文末变为各行的首尾. Egの删除各行行尾的alex,alex不区分大小写: ...
- [.net core学习] .net core中的MD5CryptoServiceProvider取代方法
使用:MD5 m5 = MD5.Create(); 参考:http://stackoverflow.com/questions/27216121/alternatives-of-md5cryptose ...
- mybatis 控制台打印sql语句
其实很简单,打印SQL只需要加一个setting就可以了.亲测可用. mybatis-config.xml: <settings> <setting name=&quo ...
- Java学习笔记46(多线程三:线程之间的通信)
多个线程在处理同一个资源,但是线程的任务却不相同,通过一定的手段使各个线程能有效地利用资源, 这种手段即:等待唤醒机制,又称作线程之间的通信 涉及到的方法:wait(),notify() 示例: 两个 ...