该方法在C#或者VC中如何实现???
import java.security.InvalidKeyException;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
class PBDemo {
public static void main(String args[]) throws InvalidKeyException,
Exception {
String strKey = "123456"; //密钥
byte[] byteE = "helloworld".getBytes(); //需要机密的字符串
byte[] byteFina = null;
Cipher cipher = null;
try {
cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, generatorKey(strKey));
byteFina = cipher.doFinal(byteE);
} finally {
cipher = null;
}
//byteFina写入文件
System.out.println(new String(byteFina));
}
/**
* 生成密钥
* @param skey
* @return
* @throws Exception
*/
public static SecretKeySpec generatorKey(String skey) throws Exception {
KeyGenerator kGen = KeyGenerator.getInstance("AES");
SecureRandom secRandom = SecureRandom.getInstance("SHA1PRNG");
secRandom.setSeed(skey.getBytes());
kGen.init(128, secRandom);
SecretKey key = kGen.generateKey();
byte[] enCodeFormat = key.getEncoded();
SecretKeySpec specKey = new SecretKeySpec(enCodeFormat, "AES");
kGen = null;
return specKey;
}
}
这段代码是使用java写的,目的就是产生一个加密用的密钥,求达人指教,如何用C#或VC或VB之类的重写这个generatorKey加密算法。。。 --------------------编程问答-------------------- http://www.cnblogs.com/linzheng/archive/2011/02/20/1959110.html
AES是对称加密的,generatorKey不过是用java库的KeyGenerator生成了密钥而已 --------------------编程问答-------------------- 看懂原理,就可以用C#写了 --------------------编程问答--------------------
问题就是 这个伪随机生成器算法“SHA1PRNG”不知道如何实现哦。。。 --------------------编程问答-------------------- 网上对加密也有很多解释和说明。
一般有aes
sha1
des
等加密算法。
在C#中 引用一个加密的命名空间即可。 --------------------编程问答--------------------
看java框架源码去呗
补充:.NET技术 , C#