pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

使用 Bouncy Castle 進行 C# RSA 解密

C# RSA Decryption using Bouncy Castle(使用 Bouncy Castle 進行 C# RSA 解密)
本文介紹了使用 Bouncy Castle 進行 C# RSA 解密的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我得到了一個 Base64 編碼的加密字符串,它是在 Java 中使用 Bouncy Castle 加密的.下面的示例 Java 代碼段:

I have been given a Base64 Encoded encrypted string, which was encrypted in Java using Bouncy Castle. Example Java snippet below:

Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, key.getPublic());
byte[] encryptedText = cipher.doFinal("xxxxx|xxxxx".getBytes("UTF-8"));
String encodedText = new BASE64Encoder().encode(encryptedText);

我需要使用 Bouncy Castle 解密生成的字符串,但在 C# 中我已經獲得了有關如何在 Java 中執行此操作的代碼片段,但我無法將其轉換為 C#(原因是我們正在構建一個 .net 站點,并且將成為 Java 站點中的 iFrame.Java 站點將 RSA 加密字符串傳遞給 .NET 站點).下面要解密的示例 Java 代碼:

I need to decrypt the resulting string using Bouncy Castle, but in C# I have been given a code snippet on how to do this in Java, but I can't convert this for C# (reasons is we are building a .net site, and is going to be an iFrame within a Java site. The Java site is going to passing in the RSA Encrypted string to the .NET site). Example Java code to decrypt below:

Cipher cipherDec = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipherDec.init(Cipher.DECRYPT_MODE, key.getPrivate());
byte[] decodedText = new BASE64Decoder().decodeBuffer(encodedText);
byte[] decryptedText = cipherDec.doFinal(decodedText);
String finalValue = new String(decryptedText, "UTF-8");

我已經從 http://www.bouncycastle.org/csharp/ 下載了示例,但是似乎沒有輸入字符串值進行加密的示例,然后通過加密/解密過程.

I have downloaded the examples from http://www.bouncycastle.org/csharp/ but there doesn't seem to be an example of inputting a string value to get encrypted, and it then going though the encrypt/decrypt process.

我得到了 模數公共指數私人指數素數P的值>prime qprime exponent pprime exponent qcrt coefficient.

I have been given values for modulus, public exponent, private expontent, prime P, prime q, prime exponent p, prime exponent q and crt coefficient.

我已經看到我可以使用以下內容:

I have seen that I can use the following:

IAsymmetricBlockCipher signer = new Pkcs1Encoding(new RsaEngine());
signer.Init(true, pubParameters);

但是 signer 對象似乎沒有與上面的 Java 示例相同的方法.

But the signer object doesn't seem to have the same methods as the Java examples above.

我唯一能用的方法是

ProcessBlock(byte[] inbuf, int inOff, int inLen);

但我看不出如何在我的上下文中使用它.

But I can't see how to use this in my context.

這里的任何幫助將不勝感激.

Any help here would be most appreciated.

推薦答案

為了幫助別人,最終轉換的代碼如下:

To Help others, the final code to convert is as follows:

RsaKeyParameters privParameters = new RsaPrivateCrtKeyParameters(mod, pubExp, privExp, p, q, pExp, qExp, crtCoef);
RsaKeyParameters pubParameters = new RsaKeyParameters(false, mod, pubExp);
IAsymmetricBlockCipher eng = new Pkcs1Encoding(new RsaEngine());
eng.Init(false, privParameters);
byte[] encdata = System.Convert.FromBase64String("{the enc string}");
encdata = eng.ProcessBlock(encdata, 0, encdata.Length);
string result = Encoding.UTF8.GetString(encdata);

mod、pubExp 等都是 BigInteger 值:

mod, pubExp etc etc are all BigInteger values:

static BigInteger mod = new BigInteger("big int value");

以下 using 指令是必需的:

The Following using directives are required:

using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Crypto.Engines;
using Org.BouncyCastle.Crypto.Encodings;
using Org.BouncyCastle.Math;

這可以從 bouncycastle 網站獲得.http://www.bouncycastle.org/csharp/

Which can be obtained from the bouncycastle site. http://www.bouncycastle.org/csharp/

這篇關于使用 Bouncy Castle 進行 C# RSA 解密的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Java Remove Duplicates from an Array?(Java從數組中刪除重復項?)
How to fix Invocation failed Unexpected Response from Server: Unauthorized in Android studio(如何修復調用失敗來自服務器的意外響應:在 Android 工作室中未經授權)
AES encryption, got extra trash characters in decrypted file(AES 加密,解密文件中有多余的垃圾字符)
AES Error: Given final block not properly padded(AES 錯誤:給定的最終塊未正確填充)
Detecting incorrect key using AES/GCM in JAVA(在 JAVA 中使用 AES/GCM 檢測不正確的密鑰)
AES-256-CBC in Java(Java 中的 AES-256-CBC)
主站蜘蛛池模板: 硬质合金模具_硬质合金非标定制_硬面加工「生产厂家」-西迪技术股份有限公司 | 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 胶辊硫化罐_胶鞋硫化罐_硫化罐厂家-山东鑫泰鑫智能装备有限公司 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 高博医疗集团上海阿特蒙医院 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 不锈钢丸厂家,铝丸,铸钢丸-淄博智源铸造材料有限公司 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 一路商机网-品牌招商加盟优选平台-加盟店排行榜平台 | 北京公司注册_代理记账_代办商标注册工商执照-企力宝 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 便民信息网_家电维修,家电清洗,开锁换锁,本地家政公司 | 东莞工作服_东莞工作服定制_工衣订做_东莞厂服 | 水成膜泡沫灭火剂_氟蛋白泡沫液_河南新乡骏华消防科技厂家 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 据信,上课带着跳 D 体验-别样的课堂刺激感受引发网友热议 | 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 多功能三相相位伏安表-变压器短路阻抗测试仪-上海妙定电气 | 中视电广_短视频拍摄_短视频推广_短视频代运营_宣传片拍摄_影视广告制作_中视电广 | 原色会计-合肥注册公司_合肥代理记账公司_营业执照代办 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 不发火防静电金属骨料_无机磨石_水泥自流平_修补砂浆厂家「圣威特」 | 耐高温硅酸铝板-硅酸铝棉保温施工|亿欧建设工程 | 浙江上沪阀门有限公司 | 自动配料系统_称重配料控制系统厂家 | 志高装潢官网-苏州老房旧房装修改造-二手房装修翻新 | Win10系统下载_32位/64位系统/专业版/纯净版下载 | 锯边机,自动锯边机,双面涂胶机-建业顺达机械有限公司 | 高柔性拖链电缆-聚氨酯卷筒电缆-柔性屏蔽电缆厂家-玖泰电缆 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 首页 - 张店继勇软件开发工作室 兰州UPS电源,兰州山特UPS-兰州万胜商贸 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | b2b网站大全,b2b网站排名,找b2b网站就上地球网 | 快速门厂家批发_PVC快速卷帘门_高速门_高速卷帘门-广州万盛门业 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 青岛侦探调查_青岛侦探事务所_青岛调查事务所_青岛婚外情取证-青岛狄仁杰国际侦探公司 |