gpt4 book ai didi

java - 黑莓 CRC32 问题

转载 作者:行者123 更新时间:2023-12-02 08:15:06 25 4
gpt4 key购买 nike

我已经被这个问题困扰了好几天了,但似乎无法理解。我希望通过在这里发帖,我能顿悟并在发帖后 30 秒解决这个问题! :D就这样......

我需要加密一个字符串,将其附加到我的 URL,然后将其发送到服务器。步骤如下:

1. Build the string (for this post, I'm using a constant TEST string)
2. Get a CRC of the string and add that to the front of the string.
3. HEX the whole string.
4. Append to URL and connect over HTTP

我被困在2了!!我应该得到的 CRC 是 1903129755,但在其他结果中,我得到的是 -1903129756。注意:出于本文的目的,我使用测试字符串及其生成的 CRC。当我在构建字符串时包含以毫秒为单位的时间时,该字符串将会发生变化。

我还应该指出,这是在黑莓上。安卓代码完美运行。该 CRC 取自 Android 和在线 CRC 生成器网站:http://hash.online-convert.com/crc32b-generator

我的代码似乎对其他人有用,所以我在这里显然有错。有人能发现我的错误吗?谢谢

如您所见,我尝试了几种不同的方法:

    import net.rim.device.api.util.CRC32;

public long getCrcValue(String inputText)
{
int crc1 = 0,crc2=0;
long crc3=0;

crc1 = CRC32.update(CRC32.INITIAL_VALUE, inputText.getBytes());
crc2 = CRC32.update(0, inputText.getBytes());
String temp = Integer.toBinaryString(crc1);
crc3 = Long.parseLong(temp,2);
long crc4 = CRC32.update(CRC32.INITIAL_VALUE, inputText.getBytes());
long crc5 = CRC32.update(0, inputText.getBytes());


logger.log("CRC1 is: "+crc1);
logger.log("CRC2 is: "+crc2);
logger.log("CRC3 is: "+crc3);
logger.log("CRC4 is: "+crc4);
logger.log("CRC5 is: "+crc5);

return crc1;
}

PS logger 是我自己的类,用于将自定义格式的输出输出到控制台,因此请忽略它。

编辑:说到输出,输出如下:

CRC1 is: -1903129756
CRC2 is: -460833676
CRC3 is: 2391837540
CRC4 is: -1903129756
CRC5 is: -460833676

EDIT2:这是等效的 Android 代码。注意crc定义为CRC32 crc:

public long getCrcValue(String inputText)
{
crc.reset();
crc.update(inputText.getBytes());
return crc.getValue();
}

最佳答案

仅供引用,最终,我通过从 java.util.zip.CRC32java.util.zip.checksum 获取源代码并使用该源代码在我的黑莓项目中创建新类来解决了这个问题。由于 Android 使用的是相同的实现,因此两个应用程序都可以正常工作!

关于java - 黑莓 CRC32 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6569914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com