草庐IT

java - 轻量级校验和算法的好选择?

为了保持一致性,我发现自己需要为一串数据生成校验和。广泛的想法是,客户端可以根据收到的有效负载重新生成校验和,从而检测传输过程中发生的任何损坏。我隐约意识到这种事情背后有各种各样的数学原理,如果你自己动手的话,很容易出现细微的错误导致整个算法失效。所以我正在寻找具有以下标准的散列/校验和算法的建议:它将由Javascript生成,因此计算量相对较小。验证将由Java完成(尽管我看不出这实际上是一个问题)。它将采用中等长度的文本输入(URL编码的Unicode,我认为是ASCII);通常大约200-300个字符,在所有情况下都低于2000个字符。输出也应该是ASCII文本,越短越好。我主

boot-admin开源项目中有关后端参数校验的最佳实践

我们在项目开发中,经常会对一些参数进行校验,比如非空校验、长度校验,以及定制的业务校验规则等,如果使用if/else语句来对请求的每一个参数一一校验,就会出现大量与业务逻辑无关的代码,繁重不堪且繁琐的校验,会大大降低我们的工作效率,而且准确性也无法保证。为保证数据的正确性、完整性,前后端都需要进行数据检验。本文对开源boot-admin项目的后端校验实践进行总结,以飨码友。boot-admin是一款采用前后端分离模式、基于SpringCloud微服务架构的SaaS后台管理框架。系统内置基础管理、权限管理、运行管理、定义管理、代码生成器和办公管理6个功能模块,集成分布式事务Seata、工作流引擎

python - 如何用scapy重新计算IP校验和?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Howtocalculateapacketchecksumwithoutsendingit?我已经在捕获的数据包中伪装了源IP和MAC地址,但现在我需要重新计算校验和,以便它在收到后检查(当然是在注入(inject)网络之后)。我真的不想自己实现校验和,我在想scapy可以为我做这件事。我读到show2()函数应该重新计算校验和,但我似乎无法让它工作。那么,我如何使用scapy重新计算(并替换)捕获的+欺骗数据包的校验和?谢谢!

Python,字典的校验和

我正在考虑创建字典的校验和以了解它是否被修改目前我有:>>>importhashlib>>>importpickle>>>d={'k':'v','k2':'v2'}>>>z=pickle.dumps(d)>>>hashlib.md5(z).hexdigest()'8521955ed8c63c554744058c9888dc30'也许存在更好的解决方案?注意:我想创建一个dict的唯一id来创建一个好的Etag。编辑:我可以在字典中包含抽象数据。 最佳答案 像这样:reduce(lambdax,y:x^y,[hash(item)for

ios - Swift 计算大文件的 MD5 校验和

我正在为大型视频文件创建MD5校验和。我目前正在使用代码:extensionNSData{funcMD5()->NSString{letdigestLength=Int(CC_MD5_DIGEST_LENGTH)letmd5Buffer=UnsafeMutablePointer.allocate(capacity:digestLength)CC_MD5(bytes,CC_LONG(length),md5Buffer)letoutput=NSMutableString(capacity:Int(CC_MD5_DIGEST_LENGTH*2))foriin0..但这会创建一个内存缓冲区,对

c# - 计算字符串的校验和

我得到了一个任意长度的字符串(比如5到2000个字符),我想为其计算校验和。要求每次对字符串进行计算时必须返回相同的校验和校验和必须是唯一的(无冲突)我无法存储以前的ID来检查冲突我应该使用哪种算法?更新:有没有合理独特的方法?即发生碰撞的可能性非常小。校验和应该是字母数字字符串是unicode字符串实际上是应该翻译的文本,校验和与每个翻译一起存储(因此翻译后的文本可以与原始文本匹配)。校验和的长度对我来说不重要(越短越好)更新2假设我得到了以下字符串“欢迎来到这个网站。使用上面华丽但无用的菜单进行导航”。字符串在View中的使用方式类似于linux中的gettext。即用户只是写(在

c# - 在 C# 中为大文件创建校验和的最快方法是什么

我必须在一些机器上同步大文件。文件最大可达6GB。同步将每隔几周手动完成一次。我不能考虑文件名,因为它们可以随时更改。我的计划是在目标PC和源PC上创建校验和,然后将目标中不存在的所有具有校验和的文件复制到目标。我的第一次尝试是这样的:usingSystem.IO;usingSystem.Security.Cryptography;privatestaticstringGetChecksum(stringfile){using(FileStreamstream=File.OpenRead(file)){SHA256Managedsha=newSHA256Managed();byte[]

c# - 计算文件的 MD5 校验和

我正在使用iTextSharp从PDF文件中读取文本。但是,有时我无法提取文本,因为PDF文件仅包含图像。我每天都下载相同的PDF文件,我想看看PDF是否被修改过。如果无法获取文本和修改日期,则为MD5校验和判断文件是否已更改的最可靠方法?如果是,一些代码示例将不胜感激,因为我在密码学方面没有太多经验。 最佳答案 使用System.Security.Cryptography.MD5非常简单:using(varmd5=MD5.Create()){using(varstream=File.OpenRead(filename)){retu

Javascript Try-Catch 性能对比。错误校验码

将代码放在try-catchblock中而不是执行各种错误检查会更快吗?例如..functiongetProjectTask(projectTaskId){if(YAHOO.lang.isUndefined(projectTaskId)||YAHOO.lang.isNull(projectTaskId)&&!YAHOO.lang.isNumber(projectTaskId)){returnnull;}varprojectPhaseId,projectPhaseIndex,projectTaskIndex,projectPhases,projectPhase,projectTask;i

go - 堆叠写入器和 zlib.writer 的校验和错误

我有两个对象写入器,第一个封装了io.Writer并在写入时同时计算内容的SHA1校验和,第二个首先封装并写入zlib压缩数据。我的带有一些测试数据的单元测试用例通过了第一个编写器,但第二个编写器失败了。我在哪里做错了什么?代码片段:import("compress/zlib""crypto/sha1""hash""io")typeObjectWriterinterface{io.WriterCommit()([]byte,error)}typeoWriterstruct{writerio.Writersumhash.Hash}func(ow*oWriter)Write(b[]byte