首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解密AES 256 CBC javascript

解密AES 256 CBC javascript
EN

Stack Overflow用户
提问于 2016-01-29 10:09:51
回答 1查看 360关注 0票数 0

我是一个新手angular前端开发人员,现在我需要访问其他开发团队的Java spring REST api。

为了获得http://apps.api.com/api/user/login接口,我需要发送带有头部的请求:AuthorizationBearer b517241b-e81d-430e-afb6-773527989b47Content-Typeapplication/json

要获得令牌b517241b-e81d-430e-afb6-773527989b47,我必须请求另一个接口http://apps.api.com/api/auth/token,然后我从该接口获得的结果如下:

{ "token": "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0NTQwMzI5MDk2NzYsInN1YiI6InRva2VuIiwidG9rZW4iOiIrbjZEd1NDUGVMbXd0SGpCT2ZzZUhVRlwvS2NOMzBBTDRkXC9sWDlSVlI1UWxnXC9wV2M1VVNNREpCVDVSUnNWNHpadUFtNExWc3BIeDl1SmtESGhvZTI0dWhMcUNzeUFmZklYMTBkalVqVzFnOSt5QTN4eEg4TElQbzBoTDR5V0JhNnplWm9lVFcrZFE0dzd3MVhCazhLZFZwWGFmRmJMZ3RoXC9OdVE5REM1c3QxTllnSDB2aHRWZ0lha3VnZVlhOEFPU1c3eWVsOWFHcXhJN1hHM1FrbVwvYUE9PSIsImlzcyI6Imh0dHBzOlwvXC93d3cud2luZ21vbmV5LmNvbSJ9.uBQYvfTwadTG2QZ76tQN6-ETT1M8X72ltDe7xBCvEhA" }

我需要做的是,使用jwt解码令牌,然后使用AES 256 CBC解密它(我被困在这里了)。

我从后台开发者那里拿到了解密的代码,代码是java的:

代码语言:javascript
复制
private static final String AES_KEY = "HG47YZ3CR8";
public static String decrypt(String orignalText) throws ApplicationException {

    try {
        final MessageDigest md = MessageDigest.getInstance("SHA-256");
        final byte[] digestOfPassword = md.digest(AES_KEY.getBytes("utf-8"));
        final SecretKey key = new SecretKeySpec(digestOfPassword, "AES");

        final Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");

        cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(new byte[16]));
        final byte[] plainTextBytes = Base64.decodeBase64(orignalText);
        final byte[] encodeTextBytes = cipher.doFinal(plainTextBytes);

        return new String(encodeTextBytes);

    } catch (NoSuchAlgorithmException |
            UnsupportedEncodingException |
            IllegalBlockSizeException |
            InvalidKeyException |
            BadPaddingException |
            NoSuchPaddingException | InvalidAlgorithmParameterException e) {
        throw new ApplicationException(ErrorCode.GENERAL_FAIL, e);
    }
}

我一直在尝试搜索javascript库来编写与该java代码相同的解密,但我找不到合适的。

如果有人知道哪个javascript库与这段java代码相似,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2016-01-29 11:16:27

我不确定我真的会推荐使用你的前端来解密任何东西,因为这需要你的密钥在javascript库中,这实际上是允许每个人解密你的令牌。这就引出了一个问题,为什么你一开始就要加密。但是如果你真的需要在javascript中做到这一点,你可以查看SO answers here

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

https://stackoverflow.com/questions/35075707

复制
相关文章

相似问题

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