我正在使用Javascript实现我的Java项目的一部分,而我目前正处于哈希和身份验证事件发生的部分。我这里有一个java类:
import com.google.common.hash.Hashing;
import static com.google.common.io.BaseEncoding.base64;
import static java.nio.charset.StandardCharsets.UTF_8;
public class SampleTest {
public static void main(String arg[]){
String payLoad = "payload";
System.out.println( base64().encode( Hashing.sha1().hashString(payLoad, UTF_8).asBytes() ) );
}
}
打印出MMrWAYjQdoQyEgTVAvYUEiWQQ2g=
接下来,我尝试使用CryptoJS在Javascript中执行此操作:
<script>
var hash = CryptoJS.SHA1("payLoad");
var base = btoa(hash)
document.write(base);
</script>
这会输出MzBjYWQ2MDE4OGQwNzY4NDMyMTIwNGQ1MDJmNjE0MTIyNTkwNDM2OA==
。
当谈到散列/编码时,我是一个菜鸟,所以有人可以请点亮一下吗?他们为什么输出不同的东西?
谢谢!