当前位置: 首页>>代码示例>>Java>>正文


Java Hashing类代码示例

本文整理汇总了Java中com.google.common.hash.Hashing的典型用法代码示例。如果您正苦于以下问题:Java Hashing类的具体用法?Java Hashing怎么用?Java Hashing使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Hashing类属于com.google.common.hash包,在下文中一共展示了Hashing类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: genSignature

import com.google.common.hash.Hashing; //导入依赖的package包/类
public static String genSignature(HttpServletRequestEx requestEx) {
  Hasher hasher = Hashing.sha256().newHasher();
  hasher.putString(requestEx.getRequestURI(), StandardCharsets.UTF_8);
  for (String paramName : paramNames) {
    String paramValue = requestEx.getHeader(paramName);
    if (paramValue != null) {
      hasher.putString(paramName, StandardCharsets.UTF_8);
      hasher.putString(paramValue, StandardCharsets.UTF_8);
      System.out.printf("%s %s\n", paramName, paramValue);
    }
  }

  byte[] bytes = requestEx.getBodyBytes();
  if (bytes != null) {
    hasher.putBytes(bytes, 0, requestEx.getBodyBytesLength());
  }

  return hasher.hash().toString();
}
 
开发者ID:apache,项目名称:incubator-servicecomb-java-chassis,代码行数:20,代码来源:SignatureUtils.java

示例2: shouldReload

import com.google.common.hash.Hashing; //导入依赖的package包/类
public boolean shouldReload() {
    if(context == null) return true;
    if(!configuration.autoReload()) return false;
    if(context.loadedFiles().isEmpty()) return configuration.reloadWhenError();

    try {
        for(Map.Entry<Path, HashCode> loaded : context.loadedFiles().entrySet()) {
            HashCode latest = Files.hash(loaded.getKey().toFile(), Hashing.sha256());
            if(!latest.equals(loaded.getValue())) return true;
        }

        return false;
    } catch (IOException e) {
        return true;
    }
}
 
开发者ID:OvercastNetwork,项目名称:ProjectAres,代码行数:17,代码来源:MapDefinition.java

示例3: choose

import com.google.common.hash.Hashing; //导入依赖的package包/类
@Override
public Server choose(Object key) {
	
	//使用一致性哈希进行分发
	//TODO 此处使用了GUAVA中简单的一致性哈希算法选择服务,但这里存在性能缺陷:当reachableServers中间某一个服务节点失效了
	//那么后续节点的一致性哈希结果将会不匹配,后续需要使用更完善的哈希环 加上 虚拟节点 的形式解决本问题
	List<Server> reachableServers = getLoadBalancer().getReachableServers();
	if(reachableServers != null && reachableServers.size() != 0){
		int serverSeq = Hashing.consistentHash(Thread.currentThread().getId(), reachableServers.size());
		return reachableServers.get(serverSeq);
	} else {
		return super.choose(key);
	}
}
 
开发者ID:QNJR-GROUP,项目名称:EasyTransaction,代码行数:15,代码来源:RestRibbonEasyTransRpcConsumerImpl.java

示例4: isFullDuplicate

import com.google.common.hash.Hashing; //导入依赖的package包/类
public boolean isFullDuplicate(IHttpRequestResponse messageInfo) {
    PrintWriter stdout = new PrintWriter(callbacks.getStdout(), true);
    IResponseInfo respInfo = helpers.analyzeResponse(messageInfo.getResponse());

    if (dubBloomFilter == null) return false;

    HashFunction m_hash = Hashing.murmur3_32();
    if (helpers.bytesToString(messageInfo.getResponse()).length() > respInfo.getBodyOffset()) {
        String body = helpers.bytesToString(messageInfo.getResponse()).substring(respInfo.getBodyOffset());

        /* full-dub detection */
        String dedupHashValue = m_hash.hashBytes(helpers.stringToBytes(body)).toString();
        if (dubBloomFilter.mightContain(dedupHashValue)) {
            return true;
        }
        dubBloomFilter.put(dedupHashValue);
    }

    return false;
}
 
开发者ID:yandex,项目名称:burp-molly-scanner,代码行数:21,代码来源:EntryPointDeduplicator.java

示例5: makeSign

import com.google.common.hash.Hashing; //导入依赖的package包/类
private static String makeSign(long userId, long sid, long expireTime) {
    StringBuilder stringBuilder = new StringBuilder();
    long type = (userId + sid + expireTime) % 3;
    if (type == 0) {
        stringBuilder.append(expireTime);
        stringBuilder.append(userId);
        stringBuilder.append(sid);
        stringBuilder.append(type);
    } else if (type == 1) {
        stringBuilder.append(userId);
        stringBuilder.append(expireTime);
        stringBuilder.append(sid);
        stringBuilder.append(type);
    } else {
        stringBuilder.append(sid);
        stringBuilder.append(expireTime);
        stringBuilder.append(userId);
        stringBuilder.append(type);
    }

    return Hashing.sha256().hashBytes(stringBuilder.toString().getBytes()).toString();
}
 
开发者ID:freedompy,项目名称:commelina,代码行数:23,代码来源:SessionHandler.java

示例6: calcBitPositions

import com.google.common.hash.Hashing; //导入依赖的package包/类
/**
 * Calculate bit positions of {@code str}.
 * <p>
 * See "Less Hashing, Same Performance: Building a Better Bloom Filter" by Adam Kirsch and Michael
 * Mitzenmacher.
 * </p>
 *
 * @param str
 * @return
 */
public int[] calcBitPositions(String str) {
    int[] bitPositions = new int[this.k];

    long hash64 = Hashing.murmur3_128().hashString(str, UTF_8).asLong();

    int hash1 = (int) hash64;
    int hash2 = (int) (hash64 >>> 32);

    for (int i = 1; i <= this.k; i++) {
        int combinedHash = hash1 + (i * hash2);
        // Flip all the bits if it's negative (guaranteed positive number)
        if (combinedHash < 0) {
            combinedHash = ~combinedHash;
        }
        bitPositions[i - 1] = combinedHash % this.m;
    }

    return bitPositions;
}
 
开发者ID:lirenzuo,项目名称:rocketmq-rocketmq-all-4.1.0-incubating,代码行数:30,代码来源:BloomFilter.java

示例7: testImageTransform

import com.google.common.hash.Hashing; //导入依赖的package包/类
@Test
public void testImageTransform() throws Exception {
  ClassLoader loader = Thread.currentThread().getContextClassLoader();
  String origPath = loader.getResource("com/filestack/sample_image.jpg").getPath();
  File origFile = new File(origPath);

  FileLink fileLink = client.upload(origPath, false);
  HANDLES.add(fileLink.getHandle());

  ImageTransform transform = fileLink.imageTransform();
  transform.addTask(new CropTask(0, 0, 500, 500));

  String cropPath = loader.getResource("com/filestack/sample_image_cropped.jpg").getPath();
  File cropFile = new File(cropPath);

  String correct = Files.asByteSource(cropFile).hash(Hashing.sha256()).toString();
  byte[] bytes = transform.getContent().bytes();
  String output = Hashing.sha256().hashBytes(bytes).toString();

  Assert.assertEquals(correct, output);
}
 
开发者ID:filestack,项目名称:filestack-java,代码行数:22,代码来源:TestTransforms.java

示例8: processRegions

import com.google.common.hash.Hashing; //导入依赖的package包/类
private void processRegions(File file, RegionProcessor regionProcessor, String randomAccessFileMode, FileChannel.MapMode mapMode) throws IOException {
    try (
            RandomAccessFile randomAccessFile = new RandomAccessFile(file.getAbsolutePath().toFile(), randomAccessFileMode);
            FileChannel channel = randomAccessFile.getChannel()

    ) {
        RegionCalculator.calculateForSize(file, file.getSize());


        for (Region region : file.getRegions().values()) {
            Hasher hasher = Hashing.sha256().newHasher();
            MappedByteBuffer mappedByteBuffer = channel.map(mapMode, region.getOffset(), region.getSize());

            int sum = regionProcessor.processRegion(region, hasher, mappedByteBuffer);

            region.setQuickDigest(sum);

            byte[] slowDigest = hasher.hash().asBytes();
            region.setSlowDigest(slowDigest);

            clientMessageHandler.submitClientRegionMessage(clientId, file, region.getOffset(), region.getSize(), sum, slowDigest);
        }
    }
}
 
开发者ID:gaganis,项目名称:odoxSync,代码行数:25,代码来源:FileOperations.java

示例9: getJarFilePrefix

import com.google.common.hash.Hashing; //导入依赖的package包/类
/**
 * Files exported from jars are exported into a certain folder so that we can rebuild them
 * when the related jar file changes.
 */
@NonNull
private static String getJarFilePrefix(@NonNull File inputFile) {
    // get the filename
    String name = inputFile.getName();
    // remove the extension
    int pos = name.lastIndexOf('.');
    if (pos != -1) {
        name = name.substring(0, pos);
    }

    // add a hash of the original file path.
    String input = inputFile.getAbsolutePath();
    HashFunction hashFunction = Hashing.sha1();
    HashCode hashCode = hashFunction.hashString(input, Charsets.UTF_16LE);

    return name + "-" + hashCode.toString();
}
 
开发者ID:alibaba,项目名称:atlas,代码行数:22,代码来源:AwbDataBindingMergeArtifactsTask.java

示例10: put

import com.google.common.hash.Hashing; //导入依赖的package包/类
public boolean put(String url) {
    byte[] bytes = Hashing.murmur3_128().hashObject(url, funnel).asBytes();
    long hash1 = this.lowerEight(bytes);
    long hash2 = this.upperEight(bytes);
    boolean bitsChanged = false;
    long combinedHash = hash1;
    try {
        for (int i = 0; i < numHashFunctions; ++i) {
        /* mask combinedHash with 0x7FFFFFFFFFFFFFFF */
            bitsChanged |= bits.set((combinedHash & 9223372036854775807L) % bitsSize);
            combinedHash += hash2;
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return bitsChanged;
}
 
开发者ID:xiongbeer,项目名称:Cobweb,代码行数:18,代码来源:DirectDiskUrlFilter.java

示例11: mightContain

import com.google.common.hash.Hashing; //导入依赖的package包/类
public boolean mightContain(String url) throws IOException {
    byte[] bytes = Hashing.murmur3_128().hashObject(url, funnel).asBytes();
    long hash1 = this.lowerEight(bytes);
    long hash2 = this.upperEight(bytes);
    long combinedHash = hash1;

    for (int i = 0; i < numHashFunctions; ++i) {
        if (!bits.get((combinedHash & 9223372036854775807L) % bitsSize)) {
            return false;
        }

        combinedHash += hash2;
    }

    return true;
}
 
开发者ID:xiongbeer,项目名称:Cobweb,代码行数:17,代码来源:DirectDiskUrlFilter.java

示例12: process

import com.google.common.hash.Hashing; //导入依赖的package包/类
@Override
public void process(ResultItems resultItems, Task task) {
    SpiderInfo spiderInfo = resultItems.get("spiderInfo");
    Webpage webpage = convertResultItems2Webpage(resultItems);
    SearchRequestBuilder searchRequestBuilder = client.prepareSearch(INDEX_NAME)
            .setTypes(TYPE_NAME)
            .setQuery(QueryBuilders.matchQuery("url", webpage.getUrl()));
    SearchResponse response = searchRequestBuilder.execute().actionGet();
    if (response.getHits().totalHits() == 0) {
        try {
            client.prepareIndex(INDEX_NAME, TYPE_NAME)
                    .setId(Hashing.md5().hashString(webpage.getUrl(), Charset.forName("utf-8")).toString())
                    .setSource(gson.toJson(webpage))
                    .get();
        } catch (Exception e) {
            LOG.error("索引 Webpage 出错," + e.getLocalizedMessage());
        }
    }
}
 
开发者ID:bruceq,项目名称:Gather-Platform,代码行数:20,代码来源:CommonWebpagePipeline.java

示例13: add

import com.google.common.hash.Hashing; //导入依赖的package包/类
/**
 * add
 *
 * @param element
 * @return
 */
public boolean add(CharSequence element) {
    if (element == null) {
        return false;
    }
    initCharset();
    BloomFilter<CharSequence> bf = this.bloomfilters.get(0);
    if (getBloomfilterBucketLength() > 1) {
        byte[] datas = element.toString().getBytes(this.charset);
        int bfIndex = Math.abs(Hashing.murmur3_128().hashBytes(datas).asInt()) % getBloomfilterBucketLength();
        bf = this.bloomfilters.get(bfIndex);
    }
    synchronized (bf) {
        bf.put(element);
        numberOfAddedElements++;
        return true;
    }
}
 
开发者ID:ruanyi,项目名称:bloomfilter-center,代码行数:24,代码来源:BloomFilterWrapper.java

示例14: convertToWebpage

import com.google.common.hash.Hashing; //导入依赖的package包/类
/**
 * 将Webmagic中的ResultItems转换为Webpage
 * @param items
 * @return
 */
public static Webpage convertToWebpage(ResultItems items) {
	if(items.toString().indexOf("ResultItems{fields={}") > 0) {
		return null;
	}
	Webpage page = new Webpage().setContent(items.get("content")).setTitle(items.get("title"))
			.setUrl(items.get("url")).setDomain(items.get("domain")).setSpiderInfoId(items.get("spiderInfoId"))
			.setGathertime(items.get("gathertime")).setSpiderUUID(items.get("spiderUUID"))
			.setKeywords(items.get("keywords")).setSummary(items.get("summary"))
			.setNamedEntity(items.get("namedEntity")).setPublishTime(items.get("publishTime"))
			.setCategory(items.get("category")).setRawHTML(items.get("rawHTML"))
			.setDynamicFields(items.get(DYNAMIC_FIELD)).setStaticFields(items.get("staticField"))
			.setAttachmentList(items.get("attachmentList")).setImageList(items.get("imageList"))
			.setProcessTime(items.get("processTime"));
	return 	page.setId(Hashing.sha256().hashString(page.getUrl(), Charset.forName("utf-8")).toString());
}
 
开发者ID:TransientBuckwheat,项目名称:nest-spider,代码行数:21,代码来源:WebpagePipeline.java

示例15: process

import com.google.common.hash.Hashing; //导入依赖的package包/类
@Override
public void process(ResultItems resultItems, Task task) {
	SpiderInfo info = resultItems.get("spiderInfo");
	Webpage page = convertToWebpage(resultItems);
	/*
	 * guava22.0不再对MD5()提供支持,
	 * 如果想更安全,使用sha256(), 
	 * 如果想更快,使用goodFastHash()
	 * */
	try {
		client.prepareIndex(INDEX_NAME, TYPE_NAME)
		   .setId(Hashing.sha256().hashString(page.getUrl(), Charset.forName("utf-8")).toString())
		   .setSource(GSON.toJson(page), XContentType.JSON)
		   .get();
	} catch(Exception e) {
		LOG.error("索引Webpage出错, 由于 " + e.getLocalizedMessage());
	}
}
 
开发者ID:TransientBuckwheat,项目名称:nest-spider,代码行数:19,代码来源:WebpagePipeline.java


注:本文中的com.google.common.hash.Hashing类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。