以下Java加密算法,publicStringsign(Stringdata,longtimestamp,PrivateKeykey)throwsException{MessageDigestmd=MessageDigest.getInstance("SHA1");md.update(data.getBytes("utf-8"...
以下Java加密算法,
public String sign(String data, long timestamp, PrivateKey key) throws Exception {
MessageDigest md = MessageDigest.getInstance("SHA1");
md.update(data.getBytes("utf-8"));
md.update(EncodeUtil.toBE(timestamp));
byte[] hash = md.digest();
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] encrypted = cipher.doFinal(hash);
return HexBin.encode(encrypted);
}
public static byte[] toBE(long data) {
byte[] buffer = new byte[8];
buffer[0] = (byte)(data >>> 56);
buffer[1] = (byte)(data >>> 48);
buffer[2] = (byte)(data >>> 40);
buffer[3] = (byte)(data >>> 32);
buffer[4] = (byte)(data >>> 24);
buffer[5] = (byte)(data >>> 16);
buffer[6] = (byte)(data >>> 8);
buffer[7] = (byte)(data >>> 0);
return buffer;
}
用.net 的什么类可以实现得到相同加密码?
展开