C#使用RSA加密解密文件
程序员文章站
2023-11-14 23:40:16
本文实例为大家分享了c#使用rsa加密解密文件的具体代码,供大家参考,具体内容如下
加密代码:
//加密代码,注意会覆盖原文件,里面有我的公钥,你要用时记得覆盖...
本文实例为大家分享了c#使用rsa加密解密文件的具体代码,供大家参考,具体内容如下
加密代码:
//加密代码,注意会覆盖原文件,里面有我的公钥,你要用时记得覆盖我的公钥 private bool encryptfile(string filename) { filestream f; try { f = new filestream(filename, filemode.open, fileaccess.readwrite, fileshare.read); } catch { return false; } random r = new random(); thread.sleep(10*r.next(3,8)); rsacryptoserviceprovider rsa = new rsacryptoserviceprovider(1024); rsa.fromxmlstring("<rsakeyvalue><modulus>w7nnt8u7kwtw8uqlk0lroxmftrznqrmh1qrnyugtoeaj3w+ih08j+h83cpwxwpoxpxm1cgclfwtcfwy1rkqdcclxjhuiwytbgktg9h0uuvfnxginji7dchshd01uypzjhcwoar1wjjd4vjqvjck++59uumhe9iuatusuvpry1be=</modulus><exponent>aqab</exponent></rsakeyvalue>"); //导入密钥 byte[] data = new byte[16]; arraylist con = new arraylist(); while(f.read(data, 0, 16)!=0) { byte[] result = rsa.encrypt(data,false); //thread.sleep(10 * r.next(2, 7)); con.add(result); } //加密 f.seek(0, seekorigin.begin); foreach(byte[] d in con) { f.write(d, 0, d.length); } f.close(); return true; }
解密代码:
//解密代码,覆盖原文件,返回值表示是否解密成功 private bool decryptfile(string filename,string key) { filestream f; try { f = new filestream(filename, filemode.open, fileaccess.readwrite, fileshare.read); } catch { return false; } rsacryptoserviceprovider rsa = new rsacryptoserviceprovider(1024); try { rsa.fromxmlstring(key); } catch { return false; } byte[] data = new byte[128]; arraylist con = new arraylist(); while (f.read(data, 0, 128) != 0) { byte[] result; try { result = rsa.decrypt(data, false); } catch { return false; } con.add(result); } //解密 f.setlength(con.count * 16); f.seek(0, seekorigin.begin); foreach (byte[] d in con) { f.write(d, 0, d.length); } f.close(); return true; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。