[英]How to make RSACryptoServiceProvider work without padding (nopadding)?
我需要使C#應用程序與Java應用程序兼容。
Java應用程序使用Cipher.getInstance("RSA/ECB/nopadding");
進行密碼ECB和無填充的初始化程序。
但是,在C#中,您有2個填充選項:OAEP填充或PKCS#1 v1.5填充。 我需要一個無填充版本,否則我肯定會卡在我的項目中。
我認為沒有任何方法可以使C#.NET RSACryptoServiceProvider使用無填充方案。 但是,是否存在允許這種精度的RSA自定義類或庫?
PS:默認情況下,C#.NET的RSACryptoServiceProvider ECB是否為ECB? 我找不到關於此的文檔。
使用OpenSSL.NET將使無填充可用。 但是,我無法使其正常運行( 如果您想幫助我使其正常運行,請參閱此問題 )
不加填充地執行RSA幾乎肯定會使您陷入癱瘓(不安全)的密碼系統。 如果C#不允許您這樣做,那么這就是C#支持的觀點。 修復Java問題。
好吧,事實是,如果沒有填充,則必須完全滿足塊大小。 當然,通常要精確達到塊大小是很奇怪的,因此您要填充。
您總是可以自己填充一些字符,然后在另一側刪除它們。
確切地說,您需要這樣做的原因是什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.