该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

为了保证程序的安全,经常需要用到数据加密的方法。Java 中提供了专门用于加密运算的类和接口。

除了使用加密类和接口外,还可以通过多种方式实现字符串的加密。其中常用的就是获取字符串的字节数组,之后对字节数组中的每个字节都进行运算,得到新的内容,这时所获得的字符串与原字符串将不相同,以此达到加密的效果;解密时再将加密字符串进行相反的运算,这样即可得到原字符串。

如何通过数据运算实现字符串的加密和解密:

代码:

(1)创建一个静态的secret () 方法,在该方法中传入两个参数,首先将需要加密的内容转换为字节数组,接着遍历字节数组中的内容,在for语句中通过异或运算进行加密,然后将加密后的字符串保存到newresult变量中。最后返回newresult 变量的值。

publicstatic String secret (Stringvalue, char secret)

{

byte[] bt=value.getBytes(); //将需要加密的内容转换为字节数组

for(int i=0;i

{

bt[i]=(byte)(bt[i]^(int)secret); //通过异或运算进行加密

}

String newresult=new String(bt,0,bt.length); //将加密后的字符串保存到 newresult变量中

return newresult;

}

(2)在main() 方法中添加代码,接收用户在控制台输入的内容并输出,然后调用secret() 方法对字符串分别进行加密和解密,并将加密和解密后的内容输出。

publicstaticvoid main(String[] args)

{

Scanner scan=new Scanner(System.in);

char secret='8'; //加密文字符

System.out.println("请输入您想加密的内容:");

String pass=scan.next();

System.out.println("原字符串内容:"+pass);

String secretResult= secret (pass,secret);

System.out.println("加密后的内容:"+ secretResult);

String uncryptResult= secret (secretResult,secret);

System.out.println("解密后的内容:"+uncryptResult);

}

运行结果:

补充:

异或运算:

原理:如果一个字符(或数值)A与一个数值B进行异或运算得到C,则再用C和B进行以后运算就可以还原得到A。

异或运算是基本bool运算/位运算1的中的一种, C语言里用^表示,此处用⊕ \oplus⊕表示。

运算规则为,相同为0,不同为1:

1⊕1=0

0⊕0=0

0⊕1=1

1⊕0=1

java 异或加密 字符串_Java 字符串的加密与解密相关推荐

  1. java des 加密 字符串_Java使用DES加密字符串

    Java使用DES加密字符串 编号:A3GS_TJ20100108004 描述: 本文讲述了如何在Java下使用DES加密字符串. 例子: NO 技术实现: 导入包: import java.io.U ...

  2. java字符替换函数示例_Java字符串替换函数replace()用法解析

    Java字符串替换函数replace()用法解析 这篇文章主要介绍了Java字符串替换函数replace()用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的 ...

  3. java 千分位格式话_Java 字符串小数转成千分位格式

    java中需要将字符串小数转成千分位格式显示,如下代码,原理是使用正则表达式对整数位进行千分位格式化,然后小数位拼接起来.为什么要这么麻烦的处理,是因为在android程序中使用的NumberForm ...

  4. java按特殊标志截取_java 字符串分割处理split及特殊符号

    String类型的对象在 用split()方法进行字符分割的时候常常会遇到用特殊字符进行分割的情况,看JDK知道split()实际上是用的正则实现的分割,当遇到一些用特殊 字符作为分割标志的时候,不使 ...

  5. java连接字符串_Java字符串连接运算符

    Java字符串连接运算符 在java语言中所有的字符串都使用半角双引号括起来的,字符串属于引用数据类型,不属于基本数据类型的范畴,怎么定义一个字符串的变量呢?例如:String name = &quo ...

  6. java 按位置格式化字符串_Java字符串格式化,{}占位符根据名字替换实例

    我就废话不多说了,大家还是直接看代码吧~ import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import j ...

  7. java 文件转换字符串_java字符串文件互相转换

    Java字符串与文件的互转 Java中有时候需要读取一个文本类的文件,将其转换为字符串,然后做进一步处理.Java中没有现成的API方法,自己手动实现一个,大家来分享. 一.字符串转换为文件 /** ...

  8. java string类型详解_Java字符串类型详解

    Java 字符串类主要有String.StringBuffer.StringBuilder.StringTokenizer 1.字符串类型底层都是使用char数组进行实现. 2.从jdk1.7以后,S ...

  9. java字符串_Java字符串

    java字符串 Java String is one of the most widely used class. Java String class is defined in java.lang ...

最新文章

  1. Ubuntu 14.04上使用CMake编译MXNet源码操作步骤(C++)
  2. 计算机类专计算机网络基础与应用,2016年秋季学期计算机专业《计算机网络基础(专)》第一次语音答疑.ppt...
  3. python怎么画简单图片-小白艰难的Python图像的绘制
  4. C# 集合交、并、差、去重,对象集合交并差
  5. 强大的DataGrid组件[13]_字段过滤(Filter)——Silverlight学习笔记[21]
  6. TypeScript strictness - 严格语法检查
  7. DC/DC电源模块是什么?有何特点
  8. html 字幕飘动效果,html 滚动字幕 制作滚动字幕效果 参数
  9. BEGINNING SHAREPOINT#174; 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 站点设置
  10. NHibernate学习--初识NHibernate
  11. laravel redis_php session 存储到redis里
  12. (数据挖掘-入门-2)相似度衡量的方法
  13. 对于spring中事务@Transactional注解的理解
  14. 考虑购买的 DELL 配置
  15. 移动产品设计书籍推荐
  16. cogs 1695. 梦游仙境
  17. B树中的M阶是什么含义?
  18. 洛谷刷题笔记5.p1116 车厢重组
  19. 微信/钉钉电脑端登录后手机端不再提醒
  20. 微信设置“种草昵称”,个性有意思,来看看!

热门文章

  1. L2-016 愿天下有情人都是失散多年的兄妹 (25 分)
  2. 虎牙SRE谈可观测:如何做到比用户和老板更早发现业务异常?
  3. Oracle EBS NETSUITE,OracleCloud、NetSuite对比研究
  4. 用shader做水波纹效果
  5. 费了九牛二虎之力搞到的python精选库,不看会后悔
  6. 彻底理解hostname---四种方法修改hostname值
  7. EM的意思是“Expectation Maximization
  8. 反射讲解,有错误的请见谅。
  9. execl、execle、execlp、execv、execve和execvp函数
  10. 2019年支付宝优惠:免费或0.6元可购一张电子公交5折月卡