C_Sharp 板


LINE

有一个案例是为了与客户的API对接 对方有提供范例档,不过是使用java写的 在RSA加密的部分程式码像这样: public byte[] rsaPrivateCipher(int opmode, byte[] PrivateKey, byte[] text, String padding) { byte[] bResult = null; Cipher cipher = null; PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(PrivateKey); KeyFactory keyFactory; try { keyFactory = KeyFactory.getInstance("RSA"); Key aKey = keyFactory.generatePrivate(keySpec); cipher = Cipher.getInstance(padding); cipher.init(opmode, aKey); bResult = cipher.doFinal(text); } catch (NoSuchAlgorithmException | InvalidKeySpecException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException e) { e.printStackTrace(); } return bResult; } 同样的内容,每次加密出来的密文都会一样 但是使用C#的RSACryptoServiceProvider,呼叫Encrypt方法出来的密文却是随机的 金钥是同一把,使用CspParameters从金钥容器中取出再传入RSACryptoServiceProvider 但若是使用SignData的话又可以算出同样的RSA签章 由於回传随机密文对方没办法验证 只好装IKVM的套件来还原对方的范例,让密文是一致的 想请问为何同样都是RSA加密,输出的结果却是两种不一样的结果? 有没有办法能让C#的密文也是每次都一样呢? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.163.180.56 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1628672318.A.553.html ※ 编辑: cercloud (118.163.180.56 台湾), 08/11/2021 17:00:43
1F:→ ssccg: padding模式是什麽? 08/11 17:40
2F:→ ssccg: 每次会不一样应该是用到OAEP padding 08/11 17:41
模式是RSA/ECB/PKCS1Padding 我用 Encrypt("", RSAEncryptionPadding.Pkcs1) 结果是随机密文 ※ 编辑: cercloud (118.163.180.56 台湾), 08/12/2021 12:13:32
3F:→ kobe8112: 有先在内部确定传进来的明文byte[]都一致吗? 08/12 16:03
4F:→ cercloud: 有,每次都是同一份明文 08/14 18:32
5F:→ t64141: 对方是要加密(encrypt)还是签章 (sign) ? 08/17 02:17
6F:→ ssccg: Pkcs1也是随机padding,如果对方期待的是密文都是一致的 08/17 11:37
7F:→ ssccg: 那他们应该用的是RSA/ECB/NoPadding 08/17 11:38
8F:→ ssccg: 另外你贴的这段是解密的程式码,不是加密的 08/17 11:38
9F:→ ssccg: 说真的比较安全的方法是要对方换作法,至於C#的解法 08/17 11:42
10F:→ ssccg: RSACryptoServiceProvider不支援,要用第三方library 08/17 11:42
11F:推 Litfal: 楼上高手。我之前是用ECB,跨平台简单方便但安全性堪虑 08/18 11:04
12F:→ ssccg: RSA只有ECB是因为从安全或效能来说都不建议直接用RSA对资料 08/20 21:51
13F:→ ssccg: 加密,而是用来加密对称式加密演算法的金钥,长度一定不会 08/20 21:52
14F:→ ssccg: 超过RSA的一个block 08/20 21:53
15F:→ ssccg: 资料简单就用RSA直接加密其实就是太懒了 08/20 21:53
16F:推 Litfal: 那时是在刻自制加密通讯,rsa用在交握阶段交换金钥,通讯 08/23 09:15
17F:→ Litfal: 主体用的是aes。 08/23 09:15







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP