/// <summary> /// 读取公钥(进过des加密) /// </summary> /// <param name="key">传出字节类型的公钥</param> /// <param name="file">要读的文件名</param> public void ReadpublicKey(out byte[] key, string file) { string[] str = File.ReadAllLines(file, Encoding.Default); desKey des = new desKey(); key = strToToHexByte(des.Decrypt(str[0], "abcdefgh")); }
/// <summary> /// 读取私钥(进过des加密) /// </summary> /// <param name="prikey">传出大数类型的私钥</param> /// <param name="file">文件名</param> public void Readprikey(out BigInteger prikey, string file) { string[] str = File.ReadAllLines(file, Encoding.Default); desKey des = new desKey(); prikey = new BigInteger(des.Decrypt(str[0], "abcdefgh"), 16); }
/// <summary> /// 经过des加密后、写入秘钥(用户名pri.txt) /// </summary> /// <param name="userKey">公钥</param> /// <param name="file">要写入的文件名</param> public void WriterKey(string userKey, string file) { try { string path = file; FileStream Ali; desKey des = new desKey(); Ali = new FileStream(path, FileMode.Create, FileAccess.Write);//创建写入文件 StreamWriter sr = new StreamWriter(Ali); sr.WriteLine(des.Encrypt(userKey, "abcdefgh")); // MessageBox.Show("\r\n公钥长度:" + userKey.Length); sr.Close(); } catch (Exception ee) { MessageBox.Show("ecc类异常 2\r\n" + ee.ToString()); } }
/// <summary> /// 经过des加密后、写入秘钥(用户名pri.txt) /// </summary> /// <param name="userD">秘钥</param> /// <param name="file">要写入的文件名</param> public void WriterKey(BigInteger userD, string file) { try { string path = file; FileStream Ali; file fi = new file(); desKey des = new desKey(); Ali = new FileStream(path, FileMode.Create, FileAccess.Write); //创建写入文件 StreamWriter sr = new StreamWriter(Ali); string ss = des.Encrypt(userD.ToString(16), "abcdefgh"); //des加密,"abcdefgh"为加密随机数 sr.WriteLine(ss); //写入文件 sr.Close(); } catch (Exception ee) { MessageBox.Show("ecc类异常 1\r\n" + ee.ToString()); } }
/// <summary> /// 将rs写入一个文件下(不经过des加密) /// </summary> /// <param name="r">R</param> /// <param name="s">S</param> /// <param name="rsfile">rs要存入的文件夹路径</param> public void Writers(BigInteger r, BigInteger s, string rsfile)//写入r,s,签名者公钥,用于验证 { try { FileStream Ali; string path = rsfile; desKey des = new desKey(); Ali = new FileStream(path, FileMode.Create, FileAccess.Write);//创建写入文件 StreamWriter sr = new StreamWriter(Ali); //RS sr.Write(r.ToString(16));//开始写入值 sr.Write("#"); sr.Write(s.ToString(16)); sr.Close(); } catch (Exception ss) { MessageBox.Show("写入RS时出错!\r\n" + ss.ToString()); throw; } }