首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MessageDigest to CryptoJS digest byteBuffer SHA512

MessageDigest to CryptoJS digest byteBuffer SHA512
EN

Stack Overflow用户
提问于 2018-12-18 01:46:36
回答 1查看 219关注 0票数 0

我尝试用SHA512消化一个字节数组

Java:

代码语言:javascript
复制
MessageDigest sha512 = MessageDigest.getInstance("SHA-512");
System.out.println("sha512: "+Arrays.toString(sha512.digest(buffer.array())));

此示例使用输入进行计算:

代码语言:javascript
复制
[18, 52, 49, 114, -101, -17, 46, -74, -108, 84, 7, -37, -51, -87, -75, 123, 113, 71, -52, 109, -69, 6, 46, 19, -108, 100, -33, 14, 74, 122, -126, -103, 81, -93]

此输出:

代码语言:javascript
复制
[-6, -75, -91, -50, 3, 5, -78, -74, -63, -33, -103, 24, -18, 39, -45, -22, 30, -10, 58, -7, -2, -28, 77, 43, -78, 58, 123, -101, -12, 22, 63, 16, -56, -17, 58, 13, -26, 61, -45, -22, 100, 121, -118, -86, 53, 115, -42, 90, -70, 67, -61, 100, 54, -46, -113, -119, -95, 27, 23, -95, -76, 51, 52, 99]

如何在postman上使用CryptoJS获得相同的结果?

谢谢-

EN

回答 1

Stack Overflow用户

发布于 2018-12-19 18:36:23

下面是java代码,我希望将其转换为javaScript,并将CryptoJS转换为postman作为计算SHA512散列的前置脚本:

代码语言:javascript
复制
    package hashtest;
import java.nio.ByteBuffer;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import com.google.common.io.BaseEncoding;

public class SpinHash
{
    private static byte[] applyChallenge(byte[] encrypted, byte[] challenge) throws NoSuchAlgorithmException {
        byte[] KEY_CHALLENGE_SEPARATOR = "".getBytes();   
        MessageDigest sha512 = MessageDigest.getInstance("SHA-512");

        ByteBuffer buffer = ByteBuffer.allocate(encrypted.length + challenge.length + KEY_CHALLENGE_SEPARATOR.length);
        buffer.put(encrypted);
        buffer.put(KEY_CHALLENGE_SEPARATOR);
        buffer.put(challenge);
        buffer.compact();

        return sha512.digest(buffer.array());
     }

     private static String returnHashPin(String spin, String challenge) throws NoSuchAlgorithmException
     {
         BaseEncoding BASE16 = BaseEncoding.base16();

         byte[] _challenge = BASE16.decode(challenge.toUpperCase());
         byte[] _SPIN = BASE16.decode(spin.toUpperCase());
         byte[] answer; 

         answer = applyChallenge(_SPIN, _challenge); 
         return BASE16.encode(answer).toUpperCase();
     }

    public static void main(String[] args) throws NoSuchAlgorithmException
    {
        System.out.println( "Hash-Wert:  " + returnHashPin("1234","089C25A81BA2B17601FB89A47CEE561737AA41055AFE88766883CA9C9E7545F5") );
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53820527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档