相关疑难解决方法(0)

如何解密SHA-256加密字符串?

我有一个使用以下方法编码的字符串,有没有办法将此字符串解码回原始值?谢谢.

public synchronized String encode(String password)
        throws NoSuchAlgorithmException, IOException {

    String encodedPassword = null;
    byte[] salt = base64ToByte(saltChars);

    MessageDigest digest = MessageDigest.getInstance("SHA-256");
    digest.reset();
    digest.update(salt);

    byte[] btPass = digest.digest(password.getBytes("UTF-8"));
    for (int i = 0; i < ITERATION_COUNT; i++) {
        digest.reset();
        btPass = digest.digest(btPass);
    }

    encodedPassword = byteToBase64(btPass);     
    return encodedPassword;
}

private byte[] base64ToByte(String str) throws IOException {

    BASE64Decoder decoder = new BASE64Decoder();
    byte[] returnbyteArray = decoder.decodeBuffer(str);

    return returnbyteArray;
}

private String byteToBase64(byte[] bt) {

    BASE64Encoder endecoder = new BASE64Encoder();
    String returnString …
Run Code Online (Sandbox Code Playgroud)

java hash cryptography

47
推荐指数
4
解决办法
23万
查看次数

是否有可能扭转sha1?

是否有可能扭转sha1?

我正在考虑使用sha1创建一个简单的轻量级系统来验证通过未加密连接进行通信的小型嵌入式系统.

假设我使用"密钥"输入创建一个这样的sha1,并用时间戳调整它,以便sha一直在变化.

sha1("My Secret Key"+"a timestamp")
Run Code Online (Sandbox Code Playgroud)

然后我将这个sha1包含在通信和服务器中,可以进行相同的计算.希望没有人能够找出"秘密密钥".

但这是真的吗?

如果你知道我是这样做的,你会知道我确实在那里放了一个时间戳,你会看到sha1.那么你可以使用这两个并找出"秘密密钥"吗?

secret_key = bruteforce_sha1(sha1, timestamp)
Run Code Online (Sandbox Code Playgroud)

谢谢约翰


注1:我猜你可能会以某种方式暴力,但实际上会有多少工作?

注2:我不打算加密任何数据,我只想知道是谁发送的.

security sha1

38
推荐指数
4
解决办法
8万
查看次数

标签 统计

cryptography ×1

hash ×1

java ×1

security ×1

sha1 ×1