你这个"955db8bb4dc50ca04087176973211080ad464b1c".getBytes("utf-8")搞错了
这里每两位代表一个字节
可以直接用commons codec的Hex.decodeHex方法解码成byte[]
这样的结果就一致了
【 在 feng321 (sfdf) 的大作中提到: 】
: 标 题: Re: “a123456?” 如何加密成“lV24u03FDKBAhxdpcyEQgK1GSxw=”
: 发信站: 水木社区 (Sat Jan 2 23:36:13 2021), 站内
:
: 谢谢,我的代码是这样的(网上都是这样的),你的代码我找的好辛苦,谢谢。
: String base64encodedString = Base64.getEncoder().encodeToString("955db8bb4dc50ca04087176973211080ad464b1c".getBytes("utf-8"));
: "955db8bb4dc50ca04087176973211080ad464b1c" 是 “a123456?”的sha1
: System.out.println("Base64 编码字符串 (基本) :" + base64encodedString);
: 【 在 imichael 的大作中提到: 】
: : Java也是先sha1再base64啊,不知道你的问题在哪里
: : 我用下面的代码试了一下,输出就是lV24u03FDKBAhxdpcyEQgK1GSxw=啊
: : public class Sha1AndBase64 {
: : ...................
:
: --
:
: ※ 来源:·水木社区
http://www.newsmth.net·[FROM: 114.99.186.*]
--
FROM 49.65.245.*