假设我有一个继承自C#中B类的A类.B类在其上有一个名为Checksum的属性,当在运行时调用时,它将计算A类实例上所有属性的校验和(所使用的特殊校验和算法并不重要,可能来自BCL).
重要的是,校验和算法必须忽略校验和属性,否则在稍后验证时将失败(因为校验和值将更改).
所以,据我所知,有两种选择:
1)使用反射迭代对象的所有公共属性,连接成一个字符串和校验和.
2)假设对象只是一堆连续的记忆地址,并将其视为字节数组和校验和.
1 - 听起来很慢2 - 听起来很难,因为我不确定你是如何忽略代表校验和本身的字符串,或者如何处理对其他对象的引用.
有没有人比1更好的想法听起来更好的这两个解决方案?
我运行这个脚本:
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
为什么相同的计算不同?
作为家庭作业的一部分,我必须在Linux中编写一个C程序,使用原始套接字生成ICMP对ICMP Echo请求的回复.ICMP数据包中的数据是否也必须包含在校验和中?或者我应该只计算标题的校验和?
尝试获取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的有效校验和.
我在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 ......但我不是正面的.
有人有主意吗?
谢谢,
保罗
我正在使用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
我正在制作一个信用卡验证程序,其中我要求的是一个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)
这是我到目前为止所做的,但我的铸造没有正确完成.我该如何解决这个问题?
我们需要检查200万个文件,看看它们是否有任何重复.
这样做最好的方法是什么?
http://www.easyduplicatefinder.com/ 我们使用这个工具做了大约20k的文件
但很快我们将不得不做200万
关于如何以有效的方式完成这项工作的任何想法?
SAS
我的意思是像在php中类似的东西sha1_file
.
我找到了非常好的和紧凑的脚本,不需要像boost这样的外部库:http://code.google.com/p/smallsha1/source/browse/trunk/sha1.cpp
但是当文件大小为10GB时,有没有办法传递给它一个文件流?
嗨,我想找到单个字符串的校验和.这是校验和的要求.
假设标题+ 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) checksum ×10
c# ×3
md5 ×2
mysql ×2
php ×2
.net ×1
c ×1
c++ ×1
credit-card ×1
debugging ×1
duplicates ×1
filesystems ×1
glib ×1
header ×1
icmp ×1
networking ×1
pdb-files ×1
raw-sockets ×1
select ×1
sha ×1
sha1 ×1
winapi ×1
xor ×1