SHA256与RSA有什么作用,以什么顺序?
在密码学和类似的事情方面,我是一个完全的新手。我不知道(也不想)知道SHA256和RSA的细节。我“知道”他们做什么,而不是他们怎么做,现在这就足够了。
我想知道“SHA256withRSA”算法(如果你可以这样称呼它)实际上做了什么以及以什么顺序。例如,它是使用 SHA256 对数据进行哈希处理,然后使用 RSA 对其进行加密,还是反之亦然,还是其他什么?
我问的原因是因为我想做java等价物:
Signature.getInstance("SHA256withRSA")
signature.initSign(privateKey); //privateKey == a key extracted from a .p12 file
在 iOS 上的 Objective-C 中。而且我似乎找不到任何确切做到这一点的东西,因此我问,我是否可以只是散列数据(SHA256),然后加密它(RSA)(反之亦然)并获得相同的行为?
做这种事情的建议解决方案是什么?
谢谢!
编辑:我没有提到我使用通过以下操作获得的私钥对数据进行签名:
KeyStore keystore = KeyStore.getInstance("PKCS12");
keystore.load(new FileInputStream(new File(filename)), password.toCharArray());
PrivateKey privateKey = (PrivateKey)keystore.getKey(alias, password.toCharArray());
例如,文件名为:“/somewhere/mykey.p12”。