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加密算法
解决方案 »
- C#中把串口读取的数据保存到EXCEL
- 正则表达式 在线跪求高手 急急急...!!!
- using DevExpress.DXperience.Demos;此引用集是引用什么文件
- C# ORA-00933:SQL命令为正确结束
- 装箱后进行加法运算的问题(有些难度)
- sugengnn(sugengnn)进来取分
- 请问有没有简单的方法判断某个Point是否在某个Region中?
- C#.Net初学者,以前学过Java,想要对C#.Net有个全面的了解,所以想关一下前辈们---<C#.Net和Java有哪些语法差异??>
- 求助,联接数据库一加入事务就出错,100有点少,还请大家帮忙,谢谢
- 求空间直线上点坐标
- 求助:使用C#获取物理内存量
- 关于UL LI的显示和隐藏
问题就是 这个伪随机生成器算法“SHA1PRNG”不知道如何实现哦
一般有aes
sha1
des
等加密算法。
在C#中 引用一个加密的命名空间即可。