java 利用异或^进行加密
package com.zcj.eg001;
import java.nio.charset.Charset;
import org.junit.Test;
public class Encryption {
public static void main(String[] args) {
String pwd = "123456test";
//简易版
test1(pwd);
//复杂版
System.out.println();
test2(pwd);
}
public static void test1(String pwd) {
char[] cs = pwd.toCharArray();
for(int i = 0;i<cs.length;i++) {
cs[i] = (char)(cs[i]^20000);
}
String encode = new String(cs);
System.out.println("加密后:"+encode);
char[] css = new String(cs).toCharArray();
for(int i = 0;i<css.length;i++) {
css[i] = (char)(css[i]^20000);
}
String decode = new String(css);
System.out.println("解密后:"+decode);
}
public static void test2(String pwd) {
String enc = encode(pwd);
System.out.println("加密后:"+enc);
String dec = decode(enc);
System.out.println("解密后:"+dec);
}
private static final String key0 = "FECddfOI()*&<MNCXZPKL";
private static final Charset charset = Charset.forName("UTF-8");
private static byte[] keyBytes = key0.getBytes(charset);
public static String encode(String enc){
byte[] b = enc.getBytes(charset);
for(int i=0,size=b.length;i<size;i++){
for(byte keyBytes0:keyBytes){
b[i] = (byte) (b[i]^keyBytes0);
}
}
return new String(b);
}
public static String decode(String dec){
byte[] e = dec.getBytes(charset);
byte[] dee = e;
for(int i=0,size=e.length;i<size;i++){
for(byte keyBytes0:keyBytes){
e[i] = (byte) (dee[i]^keyBytes0);
}
}
return new String(e);
}
}
运行后结果如下:
加密后:丑丒专且丕世乔久乓乔
解密后:123456test
加密后:567012pawp
解密后:123456test
java 利用异或^进行加密的更多相关文章
- JAVA 利用JNI加密class文件/自定义ClassLoader 类
利用 JNI 对bytecode 加密.不影响java程序员的正常开发.09年的时候写的,现在拿出来晒晒————————————————————————————混淆才是王道,如果混淆再加密就更酷了.. ...
- java 中利用异或实现两个变量互换
一般实现两个变量之间的互换要用第三个变量,这样做可以,但创建新变量,增加了系统开销.如果要交换的变量时两个整数型变量,可以用更高效的方法.例如:^(异或)操作,举例如下: package chapte ...
- c# 如何利用异或运算进行简单加密解密
利用“^”异或运算对字符串进行加密 原理:按位做“异或”运算是->位值相同得1,不同得0,如下计算 1 ^ 1 = 0 1 ^ 0 = 1 0 ^ 1 = 1 0 ^ 0 = 0 例如: < ...
- 利用异或求(整数数组中,有2K+1个数,其中有2k个相同,找出不相同的那个数)
转自https://blog.csdn.net/renjie_998003/article/details/50738025 java的位运算符中有一个叫异或的运算符,用符号(^)表示,其运算规则是: ...
- java中使用MD5进行加密 BASE64Encoder 编码
原文地址:http://www.cnblogs.com/weiwangnuanyang/articles/4326336.html java中使用MD5进行加密 在各种应用系统的开发中,经常需 ...
- java中使用MD5进行加密
java中使用MD5进行加密 在各种应用系统的开发中,经常需要存储用户信息,很多地方都要存储用户密码,而将用户密码直接存储在服务器上显然是不安全的,本文简要介绍工作中常用的 MD5加密算法,希 ...
- sha256---利用java自带的实现加密
利用java自带的实现加密:参考https://jingyan.baidu.com/article/2fb0ba40a2ef2b00f3ec5f74.html /** * 利用java原生的摘要实现S ...
- Java中使用RSA算法加密
Java中使用RSA算法加密 概述 RSA加密算法是一种非对称加密算法 RSA加密的方式 使用公钥加密的数据,利用私钥进行解密 使用私钥加密的数据,利用公钥进行解密 RSA是一对密钥.分别是公钥和私钥 ...
- java利用JDK调用并执行js源码
前言: 不同开发语言之间具有通用性,更具有协作调用的可能.有时候对于一些场景会有调用js的需求,因此下面展示了一个java利用自身JDK调用js函数的demo,供感兴趣的朋友参考. js函数文件 ex ...
随机推荐
- ReentrantReadWriterLock源码(state设计、读写锁、共享锁、独占锁及锁降级)
ReentrantReadWriterLock 读写锁类图(截图来源https://blog.csdn.net/wangbo199308/article/details/108688148) stat ...
- [日常摸鱼]bzoj1218[HNOI2003]激光炸弹-二维前缀
题意:二维网格一些格子有权值,求用边长为$r$的正方形能覆盖到格子权值和的最大值,格子大小$ \leq 5000$ 非常裸的二维前缀,然而 题目下标从0开始! QAQ 要是比赛就要爆零啦- #incl ...
- Ubuntu16.04网卡配置
新安装的Ubuntu16.04系统容易出现无法连接有线网络的问题,主要是因为网卡配置不完善,下面通过实操讲解如何解决该问题. 1. 查看网络设备 ifconfig 发现只有enp2s0和lo,没有et ...
- 2020年度综合大盘点:火爆IT业的7大Java技术,每一项都是大写的“牛逼”!
关注"Java这点事",每天与你分享Java技术.IT资讯 JAVA语言作为历史最为悠久的编程语言,从95年5月开始历经数十年依然盘踞在编程榜前三的位置,与它强大的功能和广泛的运用 ...
- 微服务之间如何共享DTO?
1. 概述 近些年来,微服务变得越来越流行.微服务基本特征是模块化.独立.易于扩展的.它们之间需要协同工作并交换数据.为了实现这一点,我们创建了名为 DTO 的共享数据传输对象.在本文中,我们将介绍在 ...
- PHP连接数据库的方式
1,旧的方式 - mysql(面向过程) 1 <?php 2 //定义连接参数 3 $host = 'localhost'; 4 $user = 'root'; 5 $password = '' ...
- Core3.0使用Caching.Memory
前言 参考链接: 使用缓存:https://www.cnblogs.com/gygg/p/11275417.html 过期时间:https://www.cnblogs.com/maijin/p/704 ...
- Java安全之Weblogic 2016-0638分析
Java安全之Weblogic 2016-0638分析 文章首发先知:Java安全之Weblogic 2016-0638分析 0x00 前言 续上篇文的初探weblogic的T3协议漏洞,再谈CVE- ...
- svn怎么上传文件
首先去网站下载TortoiseSVN,并安装 安装完后随便打开一个文件夹,如图,笔者在 E:\svn\ 文件下创建了一个simbo文件夹,选中并右键,出现了TortoiseSVN应用的选项,我们点 ...
- Sentinel滑动窗口算法
在前面搞清楚了Sentinel的使用后,大致理了一下Sentinel的责任链,搞清楚了这个,基本就已经梳理清楚sentinel-core模块的大部分内容,顺着这条链路可以继续梳理很多东西. 知其然.知 ...