我制作了一个加密和解密pdf文件的程序。我希望他们除了我以外的任何人都可以锁定,并且只能通过我的程序打开它们。我加密pdf后,我把它放在一个字节数组中。 反正有没有将pdf文件的解密字节数组显示到表单而不将文件部署到驱动器?
答案 0 :(得分:1)
您需要的是一个WinForms PDF查看器组件,可以从字节数组加载PDF。使用Gnostice PDFOne .NET的PDF查看器,代码如下:
PDFViewer PDFViewer1;
byte[] baPDF; // load the decrypted PDF to this byte array
...
PDFViewer1.LoadDocument(baPDF);
注意:我为这家Gnostice公司工作。任何其他PDF查看器组件(如果它可以从字节数组加载)都可以工作。
无需将解密的PDF保存到磁盘。
答案 1 :(得分:0)
假设您有一些名为GetDecrypedBytes()
的函数具有签名:
public byte[] GetDecryptedBytes();
如何加密/解密事物超出了手头问题的范围,我假设您知道如何执行此操作。
然后你可以编写一个函数,如:
public static string ByteArrayToString(byte[] bytes)
{
StringBuilder hex = new StringBuilder(bytes.Length * 2);
foreach (byte b in bytes)
hex.AppendFormat("{0:x2}", b);
return hex.ToString();
}
这会将字节变成可以在某处显示的文本。
然后你可以在你的用户界面上做一些事情,例如:
myTextBox.Text = ByteArrayToString(GetDecryptedBytes());
显然,可以调整ByteArrayToString
函数来改变字节十六进制表示的显示方式。