[英]C# BouncyCastle RSA Encryption and Decryption
關於使用BouncyCastle進行RSA加密和解密的許多主題,但是我遇到了一些意外的行為。
我正在嘗試使用大小為64字節的私鑰加密64字節的數據阻止
我按以下方式計算RSA加密:
public byte[] Encrypt(byte[] data, AsymmetricKeyParameter key)
{
var engine = new RsaEngine();
engine.Init(true, key);
var blockSize = engine.GetInputBlockSize();
return engine.ProcessBlock(data, 0, blockSize );
}
我使用公共密鑰計算解密,如下所示
public byte[] Decrypt(byte[] data, AsymmetricKeyParameter key)
{
var engine = new RsaEngine();
engine.Init(false, key);
var blockSize = engine.GetInputBlockSize();
return engine.ProcessBlock(data, 0, blockSize );
}
我發現的是,當我使用64字節的私鑰加密我的64數據時,我得到了64字節的加密dataBlock。
但是,當我使用64字節的公共密鑰解碼64字節的數組時,我會得到一個62字節大小的數據塊。 奇怪的是62字節數組中包含的值等於64字節原始數組(預加密)的值,但是解碼后的數組缺少原始數據的第一個索引和最后一個索引。
我嘗試使用不同的鍵和不同的數據集,並且發生相同的事情。
我一定做錯了,但看不到。
干杯。
您弄錯了基本概念。
您應該退后一步,並描述您實際想要實現的目標,以便我們找到適合您需求的方案。 只有在那之后,您才需要擔心實現它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.