当前位置: 首页 > 编程笔记 >

Java中使用异或运算符实现加密字符串

姚晋
2023-03-14
本文向大家介绍Java中使用异或运算符实现加密字符串,包括了Java中使用异或运算符实现加密字符串的使用技巧和注意事项,需要的朋友参考一下

通过异或运算符号与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到加密后的字符串。

import java.util.Scanner; 
public class Encypt { 
  public static void main(String args[]){ 
    Scanner scan = new Scanner(System.in); 
    System.out.println("请输入一个英文字符串或解密字符串:"); 
    String password = scan.nextLine();   //获取用户输入 
    char[] array = password.toCharArray(); //获取字符数组 
    for(int i=0;i<array.length;i++) //遍历字符数组 
    { 
      array[i]=(char)(array[i]^20000); //对每个数组元素进行异或运算 
    }  
    System.out.println("加密或解密结果如下:"); 
    System.out.println(new String(array)); 
  } 
} 

输出结果:

请输入一个英文字符串或解密字符串: 
www.sohu.com 
加密或解密结果如下: 
乗乗乗与乓乏么乕与乃乏乍 

总结:

位运算可以实现很多高级,高效的运算。比如说加密,乘法中的n次方就是右移n位,速度还快。

 类似资料:
  • 本文向大家介绍c异或运算 c异或运算符号,包括了c异或运算 c异或运算符号的使用技巧和注意事项,需要的朋友参考一下 与运算:& 两者都为1为1,否则为0 1&1=1,  1&0=0,  0&1=0,  0&0=0 或运算:| 两者都为0为0,否则为1 1|1 = 1,  1|0 = 1,  0|1 = 1, 0|0 = 0 非运算:~ 1取0,0取1 ~1 = 0, ~0 = 1 ~(10001)

  • 假设: 2的补码形式的32位有符号整数 true和false是值为1和0的整数 java运算符 你能实现像<代码>

  • 这是正确的吗?可以说“它是加密的”吗?我的期望是得到像“werwerwer”这样的字面字符串

  • 问题内容: 具体来说,在对象引用相等的情况下,==运算符的作用是什么? 如果在比较时引用对相同的对象地址求值,则比较是否返回true?还是利用两个引用的hashCode值确定对象是否相同? 具体来说,我想知道==操作引用 了JVM管理的哪些数据结构以 进行参考比较。==是否依靠OOP进行参考比较? 对我来说不幸的是,JLS没有定义==运算符必须如何工作。Java API文档没有提及==应该做什么(

  • 本文向大家介绍C的|、||、&、&&、异或、~、!运算符,包括了C的|、||、&、&&、异或、~、!运算符的使用技巧和注意事项,需要的朋友参考一下 位运算     位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。 位运算符有:     &(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。     其中,按位取反

  • 问题内容: 我在我的iPhone应用程序中使用Objective C中的加密类,但是我在努力通过Android应用程序在JAVA中使用相同的功能。我的加密代码如下: 我试图在JAVA中复制它,但是当我编码相同的数据时却得到了不同的字符串。所以我做错了事,但我无法弄清楚。这是我的JAVA代码: 谁能看到我要去哪里错了? 根据以下注释,我添加了getBytes,但是生成的字符串仍然不同: 问题答案:

  • 问题内容: 我是密码学的新手。我希望学习如何在文件中加密和解密文本……当我在net中引用相关文章时。我怀疑对同一文本进行多次加密后,单个文本的加密文本是否会相同?谁能解决我的疑问? 问题答案: 这是使用该类的示例:

  • 在过去的4-5个小时里,我一直在研究这个问题,尽管找到了从几个方法到整个100行课程的“答案”,但似乎找不到一个真正有效的答案。我无法想象,没有什么简单的函数可以做这样一件小事:P 我有一组预先存在的公钥/私钥(实际上,两组-一组由ssh-keygen生成,另一组由openssl生成,所以... 我所追求的只是一个简单的java,相当于我用python编写的东西- 任何帮助都会很棒!