加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java和PHP中的XOR密码:不同的结果

发布时间:2020-12-14 19:22:48 所属栏目:Java 来源:网络整理
导读:假设我有一个简单的文本,一杯不错的奶茶,它将与密钥12345进行XOR密码交换. 这个Java代码: import sun.misc.BASE64Encoder;import sun.misc.BASE64Decoder;public class XORTest { public static void main(String args[]){ String plaintext = "a nice cup

假设我有一个简单的文本,一杯不错的奶茶,它将与密钥12345进行XOR密码交换.

这个Java代码:

import sun.misc.BASE64Encoder;

import sun.misc.BASE64Decoder;

public class XORTest {

  public static void main(String args[]){

    String plaintext = "a nice cup of milk tea";
    String key = "12345";
    String encrypted = xor_encrypt(plaintext,key);
    String decrypted = xor_decrypt(encrypted,key);
    System.out.println("Encrypted: "+encrypted);
    System.out.println("Decrypted: "+decrypted);
  }

  public static String xor_encrypt(String message,String key){
    try {
      if (message==null || key==null ) return null;

      char[] keys=key.toCharArray();
      char[] mesg=message.toCharArray();
      BASE64Encoder encoder = new BASE64Encoder();

      int ml=mesg.length;
      int kl=keys.length;
      char[] newmsg=new char[ml];

      for (int i=0; i

给我:

Encrypted: UBJdXVZUElBBRRFdVRRYWF5YFEFUUw==

Decrypted: a nice cup of milk tea

这个PHP代码:

给我:

Encrypted: MTIzNDUxMjM0NTEyMzQ1MTIzNDUxMg==

Decrypted:

不知道为什么两个结果都不同.
我必须承认,PHP不是我的一杯茶.

顺便说一下,我将它用于玩具项目,因此不需要高安全性.

最佳答案
在PHP加密方法中,您有以下代码:

for ($i = 0; $i < $ml; $i++){
  $newmsg = $newmsg . ($msg[$i] ^ $key[$i % $kl]);
}

但是,$msg没有在任何地方定义.这应该是$message.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读