我正在使用用户位置信息发送数据到服务器的应用程序。服务器接受基于校验和计算的数据,这是用java编写的。
这里是用Java编写代码:adler32校验和在目标c
private static final String CHECKSUM_CONS = "1217278743473774374";
private static String createChecksum(double lat, double lon) {
int latLon = (int) ((lat + lon) * 1E6);
String checkSumStr = CHECKSUM_CONS + latLon;
byte buffer[] = checkSumStr.getBytes();
ByteArrayInputStream bais = new ByteArrayInputStream(buffer);
CheckedInputStream cis = new CheckedInputStream(bais, new Adler32());
byte readBuffer[] = new byte[50];
long value = 0;
try {
while (cis.read(readBuffer) >= 0) {
value = cis.getChecksum().getValue();
}
} catch (Exception e) {
LOGGER.log(Level.SEVERE, e.getMessage(), e);
}
return String.valueOf(value);
}
我试图寻求帮助,了解如何编写目标C相当于此。上面的函数使用adler32,我对此没有任何线索。请帮忙。
谢谢你的时间。
快速谷歌的研究给了我[Java源(http://developer.classpath.org/doc/java/util/zip/Adler32-source.html)以及一个[NSData的类别(HTTPS: //github.com/nicerobot/objc/tree/master/NSData/NSData%2BAdler32)。两者都应该有所帮助。 – Volker