class Encryption
{
private static readonly byte[] SALT = new byte[] { 0x26, 0xdc, 0xff, 0x00, 0xad, 0xed, 0x7a, 0xee, 0xc5, 0xfe, 0x07, 0xaf, 0x4d, 0x08, 0x22, 0x3c };
public static byte[] Encrypt(byte[] plain, string password)
{
MemoryStream memoryStream;
CryptoStream cryptoStream;
Rijndael rijndael = Rijndael.Create();
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password, SALT);
rijndael.Key = pdb.GetBytes(32);
rijndael.IV = pdb.GetBytes(16);
memoryStream = new MemoryStream();
cryptoStream = new CryptoStream(memoryStream, rijndael.CreateEncryptor(), CryptoStreamMode.Write);
cryptoStream.Write(plain, 0, plain.Length);
cryptoStream.FlushFinalBlock();
cryptoStream.Close();
return memoryStream.ToArray();
}
public static byte[] Decrypt(byte[] cipher, string password)
{
MemoryStream memoryStream;
CryptoStream cryptoStream;
Rijndael rijndael = Rijndael.Create();
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password, SALT);
rijndael.Key = pdb.GetBytes(32);
rijndael.IV = pdb.GetBytes(16);
memoryStream = new MemoryStream();
cryptoStream = new CryptoStream(memoryStream, rijndael.CreateDecryptor(), CryptoStreamMode.Write);
cryptoStream.Write(cipher, 0, cipher.Length);
cryptoStream.FlushFinalBlock();
cryptoStream.Close();
return memoryStream.ToArray();
}
}
private void EncryptFile(string filepath, string outputPath, string password) { FileInfo fileInfo = new FileInfo(filepath); string filename = fileInfo.Name; string fullpath = outputPath + "\\" + filename; BinaryWriter writer = new BinaryWriter(File.OpenWrite(fullpath), Encoding.ASCII); /// Two methods that I've attempted here: /// 1. The desired method: encrypt line by line - I assumed I'd be able to generate /// multiple blocks of data and decrypt them later. This isn't working //string[] lines = File.ReadAllLines(filepath); /// 2. Just read the whole thing and encrypt and write it in one swoop. string line = File.ReadAllText(filepath); //foreach(string line in lines) { byte[] bytes = Encoding.ASCII.GetBytes(line); byte[] encoded = Encryption.Encrypt(bytes, password); writer.Write(encoded); writer.Flush(); } writer.Close(); } private void DecryptFile(string filepath, string outputPath, string password) { FileInfo fileInfo = new FileInfo(filepath); string filename = fileInfo.Name; string fullpath = outputPath + "\\" + filename; StreamWriter writer = new StreamWriter(fullpath, false, Encoding.UTF8); byte[] bytes = File.ReadAllBytes(filepath); /// Here is the method that's working at the moment for decrypting; just /// grab all the data and decrypt it on one swoop. byte[] decrypted = Encryption.Decrypt(bytes, password); string s = Encoding.ASCII.GetString(decrypted); writer.Write(s); writer.Flush(); /// I've tried a number of things here to decrypt line by line, /// none of which work. This crashes with an issue about the padding /// being invalid. /* int index = 0; int count = 32; while (index
我不完全确定我该做什么了。我一直在网上到处乱翻东西,通读例子,但它们似乎都是如何加密一整个文件,或者只是加密一段数据,除了立即再次解密之外什么也不做。我该如何处理逐行书写?
而不是为您编程,我将给您一个方案,您可以实现。
如果您有每行加密,我想您希望能够解密每行以及。请注意,“行”对于计算机来说是一个相当不方便的术语。只是一堆以某种台词终结者结尾的角色。字符本身使用特定的字符编码进行编码。
此外,我将做以下假设:
本文向大家介绍C#对文件进行加密解密代码,包括了C#对文件进行加密解密代码的使用技巧和注意事项,需要的朋友参考一下 加密代码 解密代码如下 以上所述就是本文的全部内容了,希望大家能够喜欢。
问题内容: 下面的加密功能似乎起作用,因为它似乎可以加密文件并将其放置在预期的目录中。我现在正在尝试解密文件,并且它只死于消息“无法完成解密”(在此处进行编码…)。php错误日志中没有任何内容,因此我不确定为什么它会失败,但由于mcrypt对我来说是全新的,所以我更倾向于相信自己在这里做错了… 功能如下: 问题答案: 由于mcrypt是一种废弃软件,不再建议使用,因此这里是使用openssl的示例
问题内容: 结合我的另一个问题,并在更改了这部分代码之后 从解密部分,我遇到了另一个错误,这是 当我单击SheepTest.png时,文件为空。错误在哪里?谁能帮助我解决错误?谢谢。 问题答案: 我猜想这行返回null: 文档说明: “如果没有注册的ImageReader声称能够读取结果流,则返回null。” 空值将传递给此调用,从而导致NPE: 我不熟悉此API,但是从文档和此处看到的内容中,我
本文向大家介绍java使用异或对文件进行加密解密,包括了java使用异或对文件进行加密解密的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java使用异或对文件进行加密解密的具体代码,供大家参考,具体内容如下 1.使用异或的方式加密文件的原理 一个数异或另一个数两次,结果一定是其本身 2.使用异或的原理加密文件 3.使用异或的原理解密文件 以上就是本文的全部内容,希望对大家的学习有所
null 下面是我当前的代码: 以下是我的结果: 原文: 正如您所看到的,加密中缺少几个字符,这也影响了解密。缺的是2号线的v和3号线的v 你知道为什么吗?
我试图通过演示应用程序在as3crypto中加密一个文本。 现在我正试图通过php解密加密的文本,但似乎文本没有正确解密。有人知道如何通过PHP正确解密吗?还是我做错了?请启发我... 这是一个场景: > 在http://crypto.hurlant.com/demo/: 初始化向量:留空 按加密。选择base64并复制密码文本。 制作一个包含以下代码的php脚本并运行它: