java.util.zip.Adler32#getValue ( )源码实例Demo

下面列出了java.util.zip.Adler32#getValue ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: AndroidStudyDemo   文件: PackerUtil.java
/**
 * 修改dex头,CheckSum 校验码
 * @param dexBytes
 */
private static void fixCheckSumHeader(byte[] dexBytes) {
    Adler32 adler = new Adler32();
    adler.update(dexBytes, 12, dexBytes.length - 12);//从12到文件末尾计算校验码
    long value = adler.getValue();
    int va = (int) value;
    byte[] newcs = intToByte(va);
    //高位在前,低位在前掉个个
    byte[] recs = new byte[4];
    for (int i = 0; i < 4; i++) {
        recs[i] = newcs[newcs.length - 1 - i];
        System.out.println(Integer.toHexString(newcs[i]));
    }
    System.arraycopy(recs, 0, dexBytes, 8, 4);//效验码赋值(8-11)
    System.out.println(Long.toHexString(value));
    System.out.println();
}
 
源代码2 项目: tchannel-java   文件: Checksums.java
public static long calculateChecksum(CallFrame msg, long digestSeed) {

        // TODO: this is bad
        ByteBuf payloadCopy = msg.getPayload().slice();
        byte[] payloadBytes = new byte[msg.getPayloadSize()];
        payloadCopy.readBytes(payloadBytes);

        switch (msg.getChecksumType()) {

            case Adler32:
                Adler32 f = new Adler32();
                f.update((int) digestSeed);
                f.update(payloadBytes);
                return f.getValue();
            case FarmhashFingerPrint32:
            case NoChecksum:
            case CRC32C:
            default:
                return 0;
        }

    }
 
源代码3 项目: database   文件: TestChecksumUtility.java
/**
 * Verify that the computed checksum is the same whether the buffer is
 * backed by an array or not.
 */
public void test_checksum04() {
    
    byte[] data = new byte[100];
    r.nextBytes(data);

    Adler32 adler32 = new Adler32();
    adler32.update(data);
    final int expectedChecksum = (int) adler32.getValue();

    assertEquals(expectedChecksum, chk.checksum(ByteBuffer.wrap(data), 0,
            data.length));
    
    ByteBuffer direct = ByteBuffer.allocate(data.length);
    direct.put(data);
    assertEquals(expectedChecksum, chk.checksum(direct, 0,
            data.length));
    
}
 
源代码4 项目: database   文件: TestChecksumUtility.java
/**
 * Verify that the computed checksum is the same whether the buffer is
 * backed by an array or not when the checksum is computed for only a region
 * of the buffer (native heap buffer version).
 */
public void test_checksum05_direct() {
    
    byte[] data = new byte[100];
    r.nextBytes(data);

    Adler32 adler32 = new Adler32();
    adler32.update(data,20,100-10-20);
    final int expectedChecksum = (int) adler32.getValue();

    assertEquals(expectedChecksum, chk.checksum(ByteBuffer.wrap(data), 20,
            data.length-10));
    
    ByteBuffer direct = ByteBuffer.allocateDirect(data.length);
    direct.put(data);
    assertEquals(expectedChecksum, chk.checksum(direct, 20,
            data.length-10));
    
}
 
源代码5 项目: Box   文件: Dex.java
/**
 * Returns the checksum of all but the first 12 bytes of {@code dex}.
 */
public int computeChecksum() throws IOException {
    Adler32 adler32 = new Adler32();
    byte[] buffer = new byte[8192];
    ByteBuffer data = this.data.duplicate(); // positioned ByteBuffers aren't thread safe
    data.limit(data.capacity());
    data.position(CHECKSUM_OFFSET + CHECKSUM_SIZE);
    while (data.hasRemaining()) {
        int count = Math.min(buffer.length, data.remaining());
        data.get(buffer, 0, count);
        adler32.update(buffer, 0, count);
    }
    return (int) adler32.getValue();
}
 
源代码6 项目: Box   文件: DexFile.java
/**
 * Calculates the checksum for the {@code .dex} file in the
 * given array, and modify the array to contain it.
 *
 * @param bytes {@code non-null;} the bytes of the file
 * @param len length of {@code .dex} file encoded in the array
 */
private static void calcChecksum(byte[] bytes, int len) {
    Adler32 a32 = new Adler32();

    a32.update(bytes, 12, len - 12);

    int sum = (int) a32.getValue();

    bytes[8]  = (byte) sum;
    bytes[9]  = (byte) (sum >> 8);
    bytes[10] = (byte) (sum >> 16);
    bytes[11] = (byte) (sum >> 24);
}
 
源代码7 项目: PE-HFT-Java   文件: ArrayUtil.java
public static byte[] compressBytes(byte[] bytesArray) { 
	
	
	int decompressedLength = bytesArray.length;	
	int maxCompressedLength = Snappy.maxCompressedLength(decompressedLength);
	byte[] compressed = new byte[maxCompressedLength];
	int compressedLength = Snappy.compress(bytesArray, 0, decompressedLength, compressed, 0);
	byte[] truncated = Arrays.copyOfRange(compressed, 0, compressedLength );
	byte[] checkSumExt = Arrays.copyOf(truncated, truncated.length+8);
	
	Adler32 adler32 = new Adler32();
	adler32.update(truncated);
	long checkSum =adler32.getValue();
	ByteBuffer buffer = ByteBuffer.allocate(Long.SIZE / Byte.SIZE);
	byte[] checkSumBuf  =buffer.putLong(checkSum).array();
	
	checkSumExt[truncated.length] = checkSumBuf[0];
	checkSumExt[truncated.length+1] = checkSumBuf[1];
	checkSumExt[truncated.length+2] = checkSumBuf[2];
	checkSumExt[truncated.length+3] = checkSumBuf[3];
	checkSumExt[truncated.length+4] = checkSumBuf[4];
	checkSumExt[truncated.length+5] = checkSumBuf[5];
	checkSumExt[truncated.length+6] = checkSumBuf[6];
	checkSumExt[truncated.length+7] = checkSumBuf[7];
	
	
	return checkSumExt;
}
 
源代码8 项目: database   文件: TestChecksumUtility.java
/**
 * Test verifies that only the specified region of the buffer is used to
 * compute the checksum.
 */
public void test_checksum02() {

    byte[] data = new byte[100];
    r.nextBytes(data);

    Adler32 adler32 = new Adler32();
    adler32.update(data, 10, 90);
    final int expectedChecksum = (int) adler32.getValue();

    assertEquals(expectedChecksum, chk.checksum(ByteBuffer.wrap(data), 10,
            data.length));
    
}
 
源代码9 项目: octo-rpc   文件: ChecksumUtil.java
public static byte[] genAdler32ChecksumBytes(byte[] bytes) {
    Adler32 a32 = new Adler32();
    a32.update(bytes, 0, bytes.length);
    int sum = (int) a32.getValue();
    byte[] checksum = new byte[4];
    checksum[0] = (byte) (sum >> 24);
    checksum[1] = (byte) (sum >> 16);
    checksum[2] = (byte) (sum >> 8);
    checksum[3] = (byte) (sum);
    return checksum;
}
 
源代码10 项目: firebase-android-sdk   文件: JobInfoScheduler.java
@VisibleForTesting
int getJobId(TransportContext transportContext) {
  Adler32 checksum = new Adler32();
  checksum.update(context.getPackageName().getBytes(Charset.forName("UTF-8")));
  checksum.update(transportContext.getBackendName().getBytes(Charset.forName("UTF-8")));
  checksum.update(
      ByteBuffer.allocate(4)
          .putInt(PriorityMapping.toInt(transportContext.getPriority()))
          .array());
  if (transportContext.getExtras() != null) {
    checksum.update(transportContext.getExtras());
  }
  return (int) checksum.getValue();
}
 
源代码11 项目: update4j   文件: FileUtils.java
public static long getChecksum(Path path) throws IOException {
    try (InputStream input = Files.newInputStream(path)) {
        Adler32 checksum = new Adler32();
        byte[] buf = new byte[1024 * 8];

        int read;
        while ((read = input.read(buf, 0, buf.length)) > -1)
            checksum.update(buf, 0, read);

        return checksum.getValue();
    }
}
 
源代码12 项目: atlas   文件: Dex.java
/**
 * Returns the checksum of all but the first 12 bytes of {@code dex}.
 */
public int computeChecksum() throws IOException {
    Adler32 adler32 = new Adler32();
    byte[] buffer = new byte[8192];
    ByteBuffer data = this.data.duplicate(); // positioned ByteBuffers aren't thread safe
    data.limit(data.capacity());
    data.position(CHECKSUM_OFFSET + CHECKSUM_SIZE);
    while (data.hasRemaining()) {
        int count = Math.min(buffer.length, data.remaining());
        data.get(buffer, 0, count);
        adler32.update(buffer, 0, count);
    }
    return (int) adler32.getValue();
}
 
源代码13 项目: atlas   文件: DexFile.java
/**
 * Calculates the checksum for the {@code .dex} file in the
 * given array, and modify the array to contain it.
 *
 * @param bytes {@code non-null;} the bytes of the file
 */
private static void calcChecksum(byte[] bytes) {
    Adler32 a32 = new Adler32();

    a32.update(bytes, 12, bytes.length - 12);

    int sum = (int) a32.getValue();

    bytes[8]  = (byte) sum;
    bytes[9]  = (byte) (sum >> 8);
    bytes[10] = (byte) (sum >> 16);
    bytes[11] = (byte) (sum >> 24);
}
 
源代码14 项目: buck   文件: DexFile.java
/**
 * Calculates the checksum for the {@code .dex} file in the
 * given array, and modify the array to contain it.
 *
 * @param bytes {@code non-null;} the bytes of the file
 */
private static void calcChecksum(byte[] bytes) {
    Adler32 a32 = new Adler32();

    a32.update(bytes, 12, bytes.length - 12);

    int sum = (int) a32.getValue();

    bytes[8]  = (byte) sum;
    bytes[9]  = (byte) (sum >> 8);
    bytes[10] = (byte) (sum >> 16);
    bytes[11] = (byte) (sum >> 24);
}
 
源代码15 项目: javaide   文件: Dex.java
/**
 * Returns the checksum of all but the first 12 bytes of {@code dex}.
 */
public int computeChecksum() throws IOException {
    Adler32 adler32 = new Adler32();
    byte[] buffer = new byte[8192];
    ByteBuffer data = this.data.duplicate(); // positioned ByteBuffers aren't thread safe
    data.limit(data.capacity());
    data.position(CHECKSUM_OFFSET + CHECKSUM_SIZE);
    while (data.hasRemaining()) {
        int count = Math.min(buffer.length, data.remaining());
        data.get(buffer, 0, count);
        adler32.update(buffer, 0, count);
    }
    return (int) adler32.getValue();
}
 
源代码16 项目: javaide   文件: DexFile.java
/**
 * Calculates the checksum for the {@code .dex} file in the
 * given array, and modify the array to contain it.
 *
 * @param bytes {@code non-null;} the bytes of the file
 */
private static void calcChecksum(byte[] bytes) {
    Adler32 a32 = new Adler32();

    a32.update(bytes, 12, bytes.length - 12);

    int sum = (int) a32.getValue();

    bytes[8]  = (byte) sum;
    bytes[9]  = (byte) (sum >> 8);
    bytes[10] = (byte) (sum >> 16);
    bytes[11] = (byte) (sum >> 24);
}
 
源代码17 项目: J2ME-Loader   文件: DexFile.java
/**
 * Calculates the checksum for the {@code .dex} file in the
 * given array, and modify the array to contain it.
 *
 * @param bytes {@code non-null;} the bytes of the file
 */
private static void calcChecksum(byte[] bytes) {
    Adler32 a32 = new Adler32();

    a32.update(bytes, 12, bytes.length - 12);

    int sum = (int) a32.getValue();

    bytes[8]  = (byte) sum;
    bytes[9]  = (byte) (sum >> 8);
    bytes[10] = (byte) (sum >> 16);
    bytes[11] = (byte) (sum >> 24);
}
 
源代码18 项目: jackson-modules-base   文件: ClassName.java
protected static long adler32(byte[] data)
{
    Adler32 adler = new Adler32();
    adler.update(data);
    return adler.getValue();
}
 
源代码19 项目: jzab   文件: SimpleLog.java
/**
 * Goes to the next transaction record.
 *
 * @return the next transaction record
 * @throws java.io.EOFException if it reaches the end of file before reading
 *                              the entire transaction.
 * @throws IOException in case of IO failure
 * @throws NoSuchElementException
 * if there's no more elements to get
 */
@Override
public Transaction next() throws IOException {
  if(!hasNext()) {
    throw new NoSuchElementException();
  }
  DataInputStream in = new DataInputStream(logStream);
  if (in.available() < CHECKSUM_LENGTH + LENGTH_LENGTH) {
    LOG.error("Not enough bytes for checksum field and length field.");
    throw new RuntimeException("Corrupted file.");
  }
  // Gets the checksum value.
  int checksumValue = in.readInt();
  int length = in.readInt();
  long epoch, xid;
  int type;
  if (length < ZXID_LENGTH + TYPE_LENGTH) {
    LOG.error("The length field is invalid. Previous txn is {}", prevZxid);
    throw new RuntimeException("The length field is invalid.");
  }
  byte[] rest = new byte[length];
  in.readFully(rest, 0, length);
  byte[] blob = ByteBuffer.allocate(length + LENGTH_LENGTH).putInt(length)
                                                           .put(rest)
                                                           .array();
  // Caculates the checksum.
  Adler32 checksum = new Adler32();
  checksum.update(blob);
  if ((int)checksum.getValue() != checksumValue) {
    String exStr =
      String.format("Checksum after txn %s mismathes in file %s, file "
                    + "corrupted?",
                    prevZxid, logFile.getName());
    LOG.error(exStr);
    throw new RuntimeException(exStr);
  }
  // Checksum is correct, parse the byte array.
  ByteArrayInputStream bin = new ByteArrayInputStream(rest);
  DataInputStream din = new DataInputStream(bin);
  // Reads the Zxid.
  epoch = din.readLong();
  xid = din.readLong();
  // Reads the type of transaction.
  type = din.readInt();
  int payloadLength = length - ZXID_LENGTH - TYPE_LENGTH;
  byte[] payload = new byte[payloadLength];
  // Reads the data of the transaction body.
  din.readFully(payload, 0, payloadLength);
  din.close();
  Zxid zxid = new Zxid(epoch, xid);
  this.prevZxid = zxid;
  this.lastTransactionLength = CHECKSUM_LENGTH + LENGTH_LENGTH + length;
  // Updates the position of file.
  this.position += this.lastTransactionLength;
  return new Transaction(zxid, type, ByteBuffer.wrap(payload));
}
 
源代码20 项目: pitest   文件: AddlerHash.java
@Override
public long hash(final byte[] value) {
  final Adler32 adler = new Adler32();
  adler.update(value);
  return adler.getValue();
}
 
 方法所在类