首页
社区
课程
招聘
[求助]C#与c++DES算法实现
2019-10-6 00:37 7943

[求助]C#与c++DES算法实现

2019-10-6 00:37
7943
如下C#代码可以正常解密数据块 ,请用如何用另外一个C代码实现这个功能?
 //A_0  输入数据长度530
// A_1  8字节密钥
// A_2  8个0
                MemoryStream stream = new MemoryStream(A_0, 2, A_0.Length - 2);
                CryptoStream cryptoStream = new CryptoStream(stream, new DESCryptoServiceProvider
                {
                    Padding = PaddingMode.None,
                    Mode = CipherMode.CBC
                }.CreateDecryptor(A_1, A_2), CryptoStreamMode.Write);
                cryptoStream.Write(A_0, 2, A_0.Length - 2);
                cryptoStream.FlushFinalBlock();
                cryptoStream.Close();
    -------------------------------------------------
C++ 伪代码,因为一次只能解密8个字节,所以前8个字节解密是正常的和
上面c#的一样,但是后面剩余的应该怎么处理才能和c#的结果对上?
    des_setkey_dec(&ttt,deskey);
    des_crypt_ecb(&ttt,input,output);
 
谢谢,恳请给出相关代码最好了

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 332
活跃值: (1663)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
sungy 1 2019-10-6 00:42
2
0
直接按8字节块循环解密剩下的数据返回和c#的结果不一样的,不知道要怎么办
雪    币: 1042
活跃值: (455)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Rookietp 2019-10-6 10:41
3
0
openssl 试试。
雪    币: 332
活跃值: (1663)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
sungy 1 2019-10-6 16:23
4
0
Rookietp openssl 试试。
好像是这个原因,我去试试,谢谢
游客
登录 | 注册 方可回帖
返回