如何使用c# SDK验证通过AWS SQS传递的数据的完整性

本文关键字:SQS AWS 数据 完整性 何使用 SDK 验证 | 更新日期: 2023-09-27 18:18:23

首先,AWS c# SDK是否会自我检查?现在,我有一些像

这样的代码

md5校验

List<string> msgs = new List<string>();
ReceiveMessageResponse response = this.getMessageRoutine(num);
foreach (Message m in response.ReceiveMessageResult.Message) {
   if (m.MD5OfBody.ToUpper() != Global.StringFunctions.CalculateMD5Hash(m.Body)) {
       throw new Exception("TODO IMPLEMENT: RECEIVED MESSAGE IS CORRUPT");
   }
       msgs.Add(m.Body);
}
return msgs;

验证发送出去的用户定义id是否在响应中返回,并且服务器为消息生成的md5与发送的消息匹配

            foreach (SendMessageBatchResultEntry e in response.SendMessageBatchResult.SendMessageBatchResultEntry) {
                foreach (SendMessageBatchRequestEntry r in entry) {
                    if (r.Id == e.Id) {
                        if (Global.StringFunctions.CalculateMD5Hash(r.MessageBody) != e.MD5OfMessageBody.ToUpper()) {
                            throw new Exception("TODO IMPLEMENT THIS: MD5 MISMATCH BETWEEN AWS:LOCAL (" + e.MD5OfMessageBody.ToUpper() + " : " + Global.StringFunctions.CalculateMD5Hash(r.MessageBody)+")");
                        }
                        entry.Remove(r);
                        break;
                    }
                    throw new Exception("TODO IMPLEMENT THIS: INVALID ID IN RESPONSE");
                }
            }
            if (entry.Count != 0) {
                throw new Exception("TODO IMPLEMENT: NOT ALL MESSAGES SENT HAD A CORRESPONDING CALLBACK");
            }

是否有一个更好的实现像这样的东西已经创建,像request.checkResponse(响应)?

如何使用c# SDK验证通过AWS SQS传递的数据的完整性

最新版本的。net AWS SDK(1.5.23)包括MD5哈希检查作为发送单个消息,发送一批消息和接收消息的一部分。如果这对你不起作用,我们很乐意听到我们为什么以及如何做得更好。

谢谢!