我遇到一个问题,客户端计算文件的校验和,然后通过套接字将其与文件一起发送到服务器。服务器重新计算文件的校验和,并将其与传递的校验和进行比较。调试输出如下
Server calculated checksum: 53613E7F8AB289BDDC1EBF1E0929F1FD
<?xml version="1.0" encoding="utf-16"?>
<TestHistory>
<TestHistory>
<SerialNumber>13231312</SerialNumber>
<PrinterFamily>Tabletop</PrinterFamily>
<StartTime>1371515505</StartTime>
<EndTime>1371515510</EndTime>
<TestStation>PreCal</TestStation>
<TestResult>P</TestResult>
<FailureResult>
</FailureResult>
<NetworkDomainName>zgn</NetworkDomainName>
<TestPCName>01-93RZheng</TestPCName>
<TestSoftwareVersion>0.0.7</TestSoftwareVersion>
<TestSite>Jabil</TestSite>
<MAC_BT>00-G0-D0-86-CB-F7</MAC_BT>
<MAC_WiFi>00-S0-D0-26-BD-X7</MAC_WiFi>
<MAC_Wired>00-B0-D0-81-BB-L7</MAC_Wired>
<SKU>1rf3</SKU>
<WorkOrder>1313231</WorkOrder>
<Firmware_MLB>3.1321.bd2</Firmware_MLB>
<DateEntered />
<PrintheadMFGInfo>ee1</PrintheadMFGInfo>
<PrintheadSN>13-21</PrintheadSN>
</TestHistory>
</TestHistory>
Client calculated checksum: 0AFE9F429DE4C6E675297FA861C0CCA9
<?xml version="1.0" encoding="utf-16"?>
<TestHistory>
<TestHistory>
<SerialNumber>13231312</SerialNumber>
<PrinterFamily>Tabletop</PrinterFamily>
<StartTime>1371515505</StartTime>
<EndTime>1371515510</EndTime>
<TestStation>PreCal</TestStation>
<TestResult>P</TestResult>
<FailureResult>
</FailureResult>
<NetworkDomainName>zgn</NetworkDomainName>
<TestPCName>01-93RZheng</TestPCName>
<TestSoftwareVersion>0.0.7</TestSoftwareVersion>
<TestSite>Jabil</TestSite>
<MAC_BT>00-G0-D0-86-CB-F7</MAC_BT>
<MAC_WiFi>00-S0-D0-26-BD-X7</MAC_WiFi>
<MAC_Wired>00-B0-D0-81-BB-L7</MAC_Wired>
<SKU>1rf3</SKU>
<WorkOrder>1313231</WorkOrder>
<Firmware_MLB>3.1321.bd2</Firmware_MLB>
<DateEntered />
<PrintheadMFGInfo>ee1</PrintheadMFGInfo>
<PrintheadSN>13-21</PrintheadSN>
</TestHistory>
</TestHistory>
在输出的文件部分使用标准差异工具表明两个文件没有差异,这使我相信编码或其他因素导致校验和不匹配。
答案 0 :(得分:3)
是;当然可以。
哈希算法对原始字节进行操作。
如果要散列字符串,则需要以某种方式将字符转换为字节。
不同的编码会导致不同的字节。
此外,每个字符都会提供影响哈希的字节,甚至包括<?xml
等字符。