base64加密,直接对string进行和先转化为byte[]进行有什么不同,结果不一样吗?

base64加密,直接对string进行和先转化为byte[]进行有什么不同,结果不一样吗?

阅读 7.8k
3 个回答

字符串中是否含有中文等多字节字符?直接对string进行转码,内部也需要getBytes操作,因为base64说白了就是把二进制转成字符的算法,所以应该是你在外部做getBytes调用的时候使用的编码和直接使用string调用的函数内部用的getBytes用的编码不一致。
尝试给getBytes指定一个编码,比如说utf-8,或者你干脆看看它对于string转码的内部的源码,看看它里面指定的编码是什么。

Base64 是将二进制转换为文本的算法,不可能直接对 string 进行处理。
如果其它语言有对 string 进行处理的方法,也是悄悄转了二进制的。

无论如何,最终都要转换成byte数组,底层实现。再说,将string转换成byte数组也需要指定编码的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏