Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 验证Base64编码字符串_Java_String_Base64_Encode - Fatal编程技术网

Java 验证Base64编码字符串

Java 验证Base64编码字符串,java,string,base64,encode,Java,String,Base64,Encode,对于以下代码,当我尝试对字符串进行base64编码时 import org.apache.commons.codec.binary.Base64; public class Codec { public static void main(String[] args) { String clrTxt = "Hello world"; String encodedTxt; encodedText = new String(Base64.encodeBase

对于以下代码,当我尝试对字符串进行base64编码时

import org.apache.commons.codec.binary.Base64;

public class Codec {
  public static void main(String[] args) {
      String clrTxt = "Hello world";
      String encodedTxt;

      encodedText = new String(Base64.encodeBase64(clearText.getBytes()));
      System.out.println("Encoded: " + encodedText);
      System.out.println("Decoded:" 
          + new String(Base64.decodeBase64(encodedText.getBytes())));
      //    
      // output :
      //   Encoded: **SGVsbG8gd29ybGQ=**
      //   Decoded:Hello world      
  }
}
当我尝试插入一些额外字符时,在编码字符串中,比如-->“SGVsb*g8asdfasdfasdfasdf1234234*gd29ybGQ=” ->我得到一个清晰的文本,里面有一些变音字符。是否有一种方法来验证和克服这一点。请回复。
提前感谢。

您自己验证base-64字符串的能力非常有限:只要编码的字符串具有正确的长度(即长度,包括尾随的等号,可以被四整除),并且该字符串仅包含正确的base64字符,它就被视为有效字符串

如果需要对消息进行防篡改,则需要准备一段描述原始文本的附加数据,并将其与base64编码数据一起传递到目标。在最简单的情况下,它可能是文本的校验和,但该方案很容易被击败。一种更好的方法是使用一个脚本来准备原始文本的摘要,并将该摘要与base64编码的文本一起传递到目标


请记住,传递摘要不会阻止攻击,因为攻击者可以将自己的摘要与被篡改的消息一起发送。

作为安全措施,为什么要在Base64编码字符串中添加额外字符。“Hello world只是一个例子”。如果在解析将用作参数的敏感字符串时会发生什么情况?因此,它确实解码了字符串,但响应不正确。为什么我宁愿验证然后解析编码的字符串是否完全有效,并且在解码时与模式匹配?Base64只是将任意字节编码为文本格式的一种方法。这与安全无关。如果您想确保从第三方收到的某些文本没有被中间人修改,请使用加密签名。包含秘密的摘要,例如
sha1(明文+密码)
可用于检测MITM的篡改。