Tag: hash

如何比较本地文件与Amazon s3文件

我正在研究桌面Java应用程序。 它需要检查我的S3服务器上的特定文件。 我不想下载整个文件进行比较,我需要找出服务器中的那个是否比本地更新,然后下载并替换。 我不确定如何检查是否有更新的可用部分。 我听说哈希作为一种方法,但我对如何在两个方面(本地和通过S3)实际执行此操作几乎没有经验

如何在Objective-C中获得Java String.hashCode()的相同结果?

我一直在http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/String.java上阅读有关String.hashCode()的文档。来自相同字符串的相同结果,但我没有得到任何令人满意的结果。 在Objective-C [NSString hash]中给出了完全不同的结果。 有没有人这样做过? 谢谢

如果计算的哈希码超过INTEGER MAX LIMIT会发生什么?

这是来自Java HashTable Class的hashCode()实现。 如果哈希表中的元素数量很大且哈希码超过INTEGER MAX LIMIT -2,147,483,648到2,147,483,647会怎么样? 我假设hashCodes将是正整数。 public synchronized int hashCode() { int h = 0; if (count == 0 || loadFactor < 0) return h; // Returns zero loadFactor = -loadFactor; // Mark hashCode computation in progress Entry[] tab = table; for (int i = 0; i < tab.length; i++) for (Entry e […]

Java哈希密码

我试图创建一个循环,从数组列表中获取密码,散列它们,然后将散列密码传递回Person对象。 import java.util.ArrayList; public class CompanyDatabase { public ArrayList getPeople() { ArrayList people = new ArrayList(); String[] u = {“Joe”,”Stan”,”Leo”,”John”,”Sara”,”Lauren”}; String[] p = {“pass4321”, “asdfjkl”, “genericpw”, “13579”, “helloworld”, “companypass”}; for(int j = 0; j < u.length; j++){ Person temp = new Person(u[j],p[j]); people.add(temp); } return people; } } import java.util.ArrayList; import java.util.Scanner; public class CompanyDatabaseDriver […]

为什么hashmap没有像ArrayList那样的ensureCapacity()方法?

ArrayList和HashMap都有构造函数来设置初始容量, ArrayList提供了ensureCapacity()以确保在预期插入一些大量元素时内部数组已经增加。 在某些情况下, HashMap也会发生同样的情况。 那么为什么HashMap没有一个确保容量方法可以保持桶准备好呢?

PHP和Java中的SHA256

我正在将一些Java代码移植到PHP代码中。 在Java中,我有一个哈希SHA256代码,如下所示: public static String hashSHA256(String input) throws NoSuchAlgorithmException { MessageDigest mDigest = MessageDigest.getInstance(“SHA-256”); byte[] shaByteArr = mDigest.digest(input.getBytes(Charset.forName(“UTF-8”))); StringBuilder hexStrBuilder = new StringBuilder(); for (int i = 0; i < shaByteArr.length; i++) { hexStrBuilder.append(Integer.toHexString(0xFF & shaByteArr[i])); } return hexStrBuilder.toString(); } 在PHP中,我哈希如下: $hash = hash(“sha256”, utf8_encode($input)); 我用input =“test”运行示例代码。 但是,我得到了2个不同的哈希字符串: Java: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2bb822cd15d6c15b0f0a8 PHP: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 有人可以向我解释为什么以及如何让它们相互匹配? 请注意,我无法修改Java实现代码,只能修改PHP。 万分感激!

在Java和C#中计算SHA-1哈希

在Java和C#中计算SHA-1哈希 我正在尝试在C#应用程序中复制Java应用程序的逻辑。 部分原因是生成密码的SHA-1哈希。 不幸的是,我无法从Java和C#获得相同的结果。 C#输出:64 0a b2 ba e0 7b ed c4 c1 63 f6 79 a7 46 f7 ab 7f b5 d1 fa Java输出:164 10a b2 ba e0 17b ed c4 c1 163 f6 179 a7 146 f7 ab 17f b5 d1 fa 为了试图弄清楚发生了什么,我一直在Eclipse和Visual Studio中使用Debugger。 1.检查byte []键的值: Java:{84,101,115,116} C#:{84,101,115,116} 2.检查byte [] hash的值: Java:{100 10 […]

如何在Java中创建哈希表?

在Java中创建哈希表(或关联数组…)最直接的方法是什么? 我的google-fu已经出现了几个例子,但是有没有标准的方法来做到这一点? 有没有办法用键 – >值对列表填充表,而无需在每个对的对象上单独调用add方法?

如何使“MessageDigest SHA-1和Signature NONEwithRSA”等同于“Signature SHA1withRSA”

我有兴趣将带有RSA签名的SHA-1哈希应用于某些数据,但我需要分两步完成 – 首先应用哈希然后对数据进行签名。 Signature.sign()函数似乎创建了一个最终签名的更复杂(ASN.1?)的数据结构(请参阅此问题 )。 如何在不使用任何外部库(如BouncyCastle)的情况下制作两个等效文件? 使用签名应用哈希并签名: PrivateKey privatekey = (PrivateKey) keyStore.getKey(alias, null); … sig = Signature.getInstance(“SHA1withRSA”, “SunMSCAPI”); sig.initSign(privatekey); sig.update(data_to_sign); byte[] bSignedData_CAPISHA1_CAPIRSA = sig.sign(); 通过MessageDigest应用哈希,然后使用签名进行签名: PrivateKey privatekey = (PrivateKey) keyStore.getKey(alias, null); … MessageDigest sha1 = MessageDigest.getInstance(“SHA-1”); byte[] data_to_sign = sha1.digest(bdataToSign); Signature sig = Signature.getInstance(“NONEwithRSA”, “SunMSCAPI”); sig.initSign(privatekey); sig.update(data_to_sign); byte[] bSignedData_JAVASHA1_CAPIRSA = sig.sign(); … 我正在寻找以下等价物: bSignedData_JAVASHA1_CAPIRSA == […]

如何获得CRC64分布式计算(使用其线性属性)?

我需要对存储在分布式FS上的相当大的文件进行哈希处理。 我能够以比整个文件更好的性能处理文件的部分,所以我希望能够计算部分的哈希值然后求和。 我正在考虑将CRC64作为散列算法,但我不知道如何使用其理论上的“线性函数”属性,因此我可以对文件的各个部分求和。 有什么建议? 我错过了什么? 附加说明为什么我CRC64 : 我可以控制文件块,但由于应用程序性质,它们需要具有不同的大小(最多1个字节,不可能有任何固定块)。 我知道CRC32实现( zlib ),其中包括对部分CRC进行求和的方法,但我想要更广泛的东西。 8个字节对我来说很好看。 我知道CRC非常快。 我希望从中获益,因为文件可能非常庞大(高达Gb)。