java - 使用 Scala 或 Java 进行 Base 64 编码

标签 java scala base64

我试过了:

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.DecoderBase64.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/

相关文章:

java - 域对象和简单的 JavaBeans 应该进行单元测试吗?

java - Android成功构建了gradle但没有在模拟器上安装应用程序

java - (菜鸟)输出语句的快速帮助

image - 如何将图像转换为字节并在 flutter 中再次将其转换为图像?

java - 如何限制上传到 Spring MVC3 Controller 的文件类型

sql - 将 Slick SQL 查询结果映射到案例类

scala - Scala 的 Seq 简写实际上是如何工作的?

Scala,类型找不到参数 n 的隐式值

php - base64图片上传及裁剪情况PHP

reactjs - 在 ReactJS 中将 PDF 编码为 base64