当前位置:编程学习 > C#/ASP.NET >>

该方法在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#写了 --------------------编程问答--------------------
引用 1 楼  的回复:
http://www.cnblogs.com/linzheng/archive/2011/02/20/1959110.html

AES是对称加密的,generatorKey不过是用java库的KeyGenerator生成了密钥而已


问题就是 这个伪随机生成器算法“SHA1PRNG”不知道如何实现哦。。。 --------------------编程问答-------------------- 网上对加密也有很多解释和说明。
一般有aes
sha1
des
等加密算法。
在C#中 引用一个加密的命名空间即可。 --------------------编程问答--------------------
引用 3 楼  的回复:
引用 1 楼  的回复:

http://www.cnblogs.com/linzheng/archive/2011/02/20/1959110.html

AES是对称加密的,generatorKey不过是用java库的KeyGenerator生成了密钥而已


问题就是 这个伪随机生成器算法“SHA1PRNG”不知道如何实现哦。。。


看java框架源码去呗
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,