我试过了:
val md = java.security.MessageDigest.getInstance("SHA-1")
val result = new sun.misc.BASE64Encoder().encode(md.digest("user:pass".getBytes))
结果:
md: java.security.MessageDigest = SHA-1 Message Digest from SUN, <initialized>
result: String = smGaoVKd/cQkjm7b88GyorAUz20=
我也试过了:
import java.net.URLEncoder
val result = URLEncoder.encode(user + ":" + pass, "UTF-8")
结果:
result: String = user%3Apass
基于 http://www.base64encode.org/ 我想要的结果值应该是“dXNlcjpwYXNz”
网站与这些编码有何不同? 另外,我该如何模仿 Java/Scala 中的网站?
注意,具体应用是针对使用基本身份验证的 header 。
最佳答案
从 Java 8 开始,标准库中直接有方便的实用程序类:Base64.Decoder
和 Base64.Encoder
.还有一些静态工厂方法可以构造这些类的实例,这些实例对 Base64
中的各种 Base64 风格执行 Base64 编码/解码。类。
这是编码器的使用方法:
import java.util.Base64
import java.nio.charset.StandardCharsets
Base64.getEncoder.encodeToString("user:pass".getBytes(StandardCharsets.UTF_8))
关于java - 使用 Scala 或 Java 进行 Base 64 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18241077/