标签: checksum

校验内存中的对象

假设我有一个继承自C#中B类的A类.B类在其上有一个名为Checksum的属性,当在运行时调用时,它将计算A类实例上所有属性的校验和(所使用的特殊校验和算法并不重要,可能来自BCL).

重要的是,校验和算法必须忽略校验和属性,否则在稍后验证时将失败(因为校验和值将更改).

所以,据我所知,有两种选择:

1)使用反射迭代对象的所有公共属性,连接成一个字符串和校验和.

2)假设对象只是一堆连续的记忆地址,并将其视为字节数组和校验和.

1 - 听起来很慢2 - 听起来很难,因为我不确定你是如何忽略代表校验和本身的字符串,或者如何处理对其他对象的引用.

有没有人比1更好的想法听起来更好的这两个解决方案?

c# checksum

2
推荐指数
1
解决办法
2771
查看次数

不同的php版本上不同的sha1校验和?

我运行这个脚本:

define('SECRET', "vJs;ly-W\XDkD_2'-M7S2/ZRRBobxt5");
echo sha1(SECRET . 'zcbkeyky' . 'aaa@bbb.com') . "\n";
Run Code Online (Sandbox Code Playgroud)

在本地使用PHP 5.3.2(cli)它给了我:3baa47e50394cd2dce236dcbf2f409fdb9010f2a
在PHP 5.1.6(cli)的远程机器上它给出:d1bcf4ea83e50593d3df19a8455a5f5cd32d63ef

为什么相同的计算不同?

php checksum sha1

2
推荐指数
1
解决办法
552
查看次数

ICMP标头校验和是否也包含数据?

作为家庭作业的一部分,我必须在Linux中编写一个C程序,使用原始套接字生成ICMP对ICMP Echo请求的回复.ICMP数据包中的数据是否也必须包含在校验和中?或者我应该只计算标题的校验和?

networking checksum header raw-sockets icmp

2
推荐指数
1
解决办法
3743
查看次数

SELECT的校验和结果在MySQL中

尝试获取SELECT语句结果的校验和,尝试了这一点

SELECT sum(crc32(column_one))
FROM database.table;
Run Code Online (Sandbox Code Playgroud)

哪个有效,但这不起作用:

SELECT CONCAT(sum(crc32(column_one)),sum(crc32(column_two)))
FROM database.table;
Run Code Online (Sandbox Code Playgroud)

对建议持开放态度,主要思想是从SELECT语句中获取有关行和列结果的SUM的有效校验和.

mysql select checksum

2
推荐指数
1
解决办法
1万
查看次数

Visual Studio 2010调试器构建正确 - 编译器pdb和链接器pdb不同步?

我在MS VS 2010中有一个解决方案,它可以在重建所有(1)后正确编译和构建.但是,在我对源文件进行更改并开始调试之后,VS会识别项目已过期并成功构建项目(2)(如预期的那样).

问题是似乎VS开始使用obj/pdb/etc ..从上面的(1)而不是(2)开始调试项目.如果我闯入调试器并导航到感兴趣的文件中更改的模块,我被告知"源文件与模块构建时不同".表示我不想重建源代码,我在下面给出了以下信息:(注意,为了获得"良好"构建,我必须重建解决方案(或删除vc100.pdb)).


找到"感兴趣的文件"的来源.校验和:MD5 {59 96 7d 1 9f b 33 20 63 4c 81 1d d7 c6 94 30}

确定校验和是否匹配以下位置:1:"感兴趣的文件"校验和:MD5 {61 66 43 cb d1 97 d1 d5 0 dc 9b 60 64 71 b2 b6}校验和不匹配.存在"感兴趣的文件"文件.

在脚本文档中查找"感兴趣的文件"......

确定校验和是否与以下位置匹配:

1:"感兴趣的文件"校验和:MD5 {61 66 43 cb d1 97 d1 d5 0 dc 9b 60 64 71 b2 b6}校验和不匹配.

在项目中寻找"感兴趣的文件".

在项目中找不到该文件.

在目录中查找

.

misc目录

.

调试器将要求用户找到文件:"感兴趣的文件".

用户在"查找源"对话框中按"取消".已修改活动解决方案的调试源文件设置,以便调试器不会要求用户找到文件:"感兴趣的文件".

调试器无法找到源文件"感兴趣的文件".


此时调试器识别出pdb哈希值不同步,即使编译器/链接器未能及早识别出这一点.重建后一切正常,但在更改源文件后似乎无法正确构建.

似乎"rebuild"正确地构建了vc100.pdb和调试器pdb,而"普通"构建只触及编译器/链接器vc100.pdb ......但我不是正面的.

有人有主意吗?

谢谢,

保罗

debugging checksum md5 visual-studio-2010 pdb-files

2
推荐指数
1
解决办法
1万
查看次数

为什么我的SHA256总和不同?

我正在使用glib来生成SHA256校验和.它似乎工作正常,但当我使用sha256sum验证输出时,我得到了不同的结果.有什么想法发生了什么?

char* createChecksumString(const char* buffer) {
    //Create SHA256 checksum using glib
    gchar* checksum = g_compute_checksum_for_string(G_CHECKSUM_SHA256,
        buffer, -1);

    printf("%s\n", buffer);
    printf("%s\n", checksum);

    .
    .
    .
}

.
.
.

const char* msg = "Hello SHA256";
char* checksum = createChecksumString(msg);
Run Code Online (Sandbox Code Playgroud)

上面的代码产生:

你好SHA256

70725d0f78cb0967c0e5171f733619712d239e28f2d279e4b3c3ed97f7456fa3

sha256sum产生不同的输出.见下文:

echo"Hello SHA256"| sha256sum

e32bd03f46f51d4a5c903429fea1c31032d8d7aa689c764141b7cebd74f4e140

c checksum glib

2
推荐指数
1
解决办法
372
查看次数

如何在C#中将字符串转换为int数组

我正在制作一个信用卡验证程序,其中我要求的是一个16位数字(信用卡号)的字符串,我想将其转换为int数组.我怎么做?然后我需要将从第一个数字开始的每个其他数字乘以2.

char[] creditNumbers = creditCardNumber.ToCharArray();

creditNumbers[0] = (char)((int)(creditNumbers[0] * 2));
creditNumbers[2] = (char)((int)(creditNumbers[2] * 2));
creditNumbers[4] = (char)((int)(creditNumbers[4] * 2));
creditNumbers[6] = (char)((int)(creditNumbers[6] * 2));
creditNumbers[8] = (char)((int)(creditNumbers[8] * 2));
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所做的,但我的铸造没有正确完成.我该如何解决这个问题?

c# checksum credit-card

2
推荐指数
1
解决办法
7910
查看次数

检查200万个文件是否有重复项

我们需要检查200万个文件,看看它们是否有任何重复.

这样做最好的方法是什么?

http://www.easyduplicatefinder.com/ 我们使用这个工具做了大约20k的文件

但很快我们将不得不做200万

关于如何以有效的方式完成这项工作的任何想法?

SAS

php mysql filesystems checksum duplicates

2
推荐指数
1
解决办法
185
查看次数

如何创建文件的md5或sha1校验和而不将其内容加载到内存?

我的意思是像在php中类似的东西sha1_file.

我找到了非常好的和紧凑的脚本,不需要像boost这样的外部库:http://code.google.com/p/smallsha1/source/browse/trunk/sha1.cpp

但是当文件大小为10GB时,有没有办法传递给它一个文件流?

c++ winapi checksum md5 sha

2
推荐指数
1
解决办法
1623
查看次数

在C#.net中查找字符串的校验和

嗨,我想找到单个字符串的校验和.这是校验和的要求.

  1. 以十六进制字符表示的32位/ 8字节校验和.
  2. 它应该是标题+会话+正文+消息的异或.

假设标题+ session + body + message ="这是测试字符串".我想计算这个的校验和.到目前为止,我开发了以下代码.

如果string length(byte[] data)是4的倍数,则正确计算校验和.

如果"data"不是4的倍数,我会收到异常

"System.IndexOutOfRangeException:索引超出了数组的范围".

我将从用户那里获取具有不同字符串长度的不同输入,因此字符串长度将是可变的(意味着一些时间用户可以仅在q和A中输入ABCDE,依此类推.).如何修复此异常问题并使用4的多个计算正确的校验和.

public string findchecksum(string userinput)
  try
    {
        ASCIIEncoding enc = new ASCIIEncoding();

        byte[] data = Encoding.ASCII.GetBytes(userinput);
        byte[] checksum = new byte[4];
        for (int i = 16; i <= data.Length - 1; i += 4)
        {


            checksum[0] = (byte)(checksum[0] ^ data[i]);
            checksum[1] = (byte)(checksum[1] ^ data[i + 1]);
            checksum[2] = (byte)(checksum[2] ^ data[i + 2]);
            checksum[3] = (byte)(checksum[3] ^ data[i + 3]);
        } …
Run Code Online (Sandbox Code Playgroud)

.net c# checksum xor

2
推荐指数
1
解决办法
2052
查看次数