本人第一次写博客写的不好请大家不要笑话
在做二维码的项目时需要验证是不是自己的二维码如果是用crc32验证的就看下面的实现代码
例如 扫描的码是
100000000290000141152711511UQrs8nvQhiGTVqExRUhDt8vEKTb58m84LlRbyzLf9a3dy+Hbqg4v9j57Oy7TrysLttcheYeY34wJDsOGe5Wh2Qdffab4ad
后8位就是去掉后面8位用前面的一段字符串经过CRC32处理得到一段数字在换成16进制得到的dffab4ad
首先引入libz.dylib
再引入头文件 #import“zlib.h”
//是否正确的二维码
-(BOOL)CheckQRKye:(NSString *)QRString
{
NSString * String1 = [QRString substringToIndex:QRString.length - 8];
NSString * String2 = [QRString substringFromIndex:QRString.length - 8];
NSData * buffer = [String1 dataUsingEncoding:NSUTF8StringEncoding];
uLong crc = crc32(0L, Z_NULL, 0);
crc = crc32(crc, [buffer bytes],(unsigned int)[buffer length]);
NSString *crcStr = [NSString stringWithFormat:@"%lu", crc];
long long numTT = [crcStr longLongValue];
NSString * crcStr2 = [NSString stringWithFormat:@"%llx",numTT];
if([crcStr2 isEqualToString:String2])
{
return YES;
}
else
{
return NO;
}
}