我正在使用一个小的FAT16文件系统,我想为存储配置信息的indidual XML文件生成CRC值.如果数据发生变化或被破坏,我希望能够检查CRC以确定文件仍处于其原始状态.
问题是,如何在不更改文件本身的CRC值的情况下将CRC值放入文件中?我可以想到几个解决方案,但我认为必须有一个相当标准的解决方案来解决这个问题.
用什么算法计算一个数字列表的校验位?
列表的长度在8到12位之间.
另请参阅:
如何生成验证码/号码?
我有一个客户端在内部分发大型二进制文件.他们还传递文件的md5校验和,并在用作工作流程的一部分之前显然根据校验和验证文件.
然而,他们声称"经常"他们在文件中遇到腐败,其中md5仍然说该文件是好的.
我读过的所有内容都表明这应该是非常不可能的.
听起来有可能吗?另一种哈希算法会提供更好的结果吗?我是否应该查看流程问题,例如他们声称要检查校验和,但不是真的这样做?
NB,我还不知道在这种情况下"经常"意味着什么.他们每天处理数百个文件.我不知道这是每日,每月还是每年发生.
我正在通过电子邮件向某人发送源代码包.我给他们发了一个包含文件的.svdump.他们现在要我发送源转储的MD5文件.如何在Mac上创建它?
有没有办法获得一个程序,我可以通过命令行运行,该程序将执行远程文件的校验和?例如,获取https://stackoverflow.com/opensearch.xml的校验和
我希望能够获得有关新rss/xml条目何时可用的更新.我以为我可以偶尔对文件进行校验和,如果它不同则必须有更新.我正在寻找一个shell脚本来检查新的rss/xml数据.
GCC的向量扩展提供了一种不错的,合理的可移植方式,可以访问不同硬件架构上的某些SIMD指令,而无需借助硬件特定的内在函数(或自动向量化).
一个真实的用例,就是计算一个简单的加法校验和.有一点不明确的是如何将数据安全地加载到矢量中.
typedef char v16qi __attribute__ ((vector_size(16)));
static uint8_t checksum(uint8_t *buf, size_t size)
{
assert(size%16 == 0);
uint8_t sum = 0;
vec16qi vec = {0};
for (size_t i=0; i<(size/16); i++)
{
// XXX: Yuck! Is there a better way?
vec += *((v16qi*) buf+i*16);
}
// Sum up the vector
sum = vec[0] + vec[1] + vec[2] + vec[3] + vec[4] + vec[5] + vec[6] + vec[7] + vec[8] + vec[9] + vec[10] + vec[11] + vec[12] …
Run Code Online (Sandbox Code Playgroud) 我正在编写一种扩展方法,通过删除大量的样板来简化哈希的创建,但问题是每当我单步执行代码时,无论是否调用,我都可以看到它总是选择,或者SHA256Managed
SHA256.Create()
SHA256Cng.Create()
SHA256Managed.Create()
SHA256CryptoServiceProvider.Create()
当我选择不同的哈希算法(如MD5)时,情况也是如此,但在MD5的情况下,无论我实际使用哪个类,它都会选择MD5CryptoServiceProvider
...
这是为什么?
这是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace Utility.Methods
{
public enum HashType { MD5, SHA512, SHA256, SHA384, SHA1 }
public enum HashSubType {Normal, Cng, Managed, CryptoServiceProvider}
public static class TextHasher
{
public static string Hash(this string input, HashType hash, HashSubType subType = HashSubType.Normal)
{
Func<HashAlgorithm, string> hashFunction = alg => HashingHelper(input, alg);
switch (subType)
{
case HashSubType.Normal:
return hashFunction(NormalHashes(hash)); …
Run Code Online (Sandbox Code Playgroud) 当校验和应该包含数据部分,数据部分可以是可变大小的,并且无法预测数据大小时,如何计算ICMP回应请求或回复的校验和?
这是关于如何计算ICMP头的校验和的文档.
ICMP标题校验和.16位.从ICMP类型字段开始,ICMP消息的一个补码和的16位补码.当计算校验和时,校验和字段应首先被清除为0.当传输数据包时,计算校验和并将其插入该字段.当接收到数据包时,再次计算校验和并根据校验和字段进行验证.如果两个校验和不匹配则发生错误.
我有一个使用BouncyCastle.Crypto dll(版本1.7.4,运行时版本1.1.4)的实用程序,以解密由另一个系统提供给它的文件.
我刚刚更新了pgp密钥(并为加密器提供了新的公钥).新密钥使用4096位RSA加密,并具有24个字符的密码,这是我在新密钥和旧密钥之间可以想到的唯一区别.使用的旧密钥我相信2048位加密,带有7个字符的密码.
当我尝试解密文件时,当调用BouncyCastle提供的PgpSecretKey.ExtractPrivateKey(char [] passPhrase)函数时,该进程现在失败.错误是"校验和不匹配在20的0".奇怪的部分是我第一次测试它工作正常,然后没有变化它开始失败.我尝试过多个加密文件.
由于它是BouncyCastle的旧版本,并且ExtractPrivateKey函数的这种特殊排列不再使用,我发现很难找到相关信息.任何想法都表示赞赏.
我想制作一个MySQL数据库模式的哈希/签名(没有数据),以便对其进行校验和,以确保它不被其他人修改.
我怎样才能实现它?