Tag: sha1

六角形字符串上的SHA1哈希

我正在尝试使用Java安全库对hex字符串表示的数字进行哈希处理。 意思是,如果我有字符串“AABBCCDD”我想要哈希它不是因为这是一个ascii输入,它是0x65,0x65,0x66,0x66,0x67,0x67,0x68,0x68,但是作为四个字节 – 0xAA,0xBB, 0xCC,0xDD。 我设法用低值来实现它,例如“112233445566”(因为字节是用Java签名的)但是因为值很高而失败了。 有人知道如何实现这样的事情吗? 谢谢,Binyamin

我的SHA1代码语法错误

我得到以下代码: import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class Sha1{ private static final char[] HEX_CHARS = null; public static void main(String[] args){ String hash = toSHA1((“27″+”peojvootv”).getBytes()); System.out.println(hash); } public static String toSHA1(byte[] convertme) { MessageDigest md = null; try { md = MessageDigest.getInstance(“SHA-1”); } catch(NoSuchAlgorithmException e) { e.printStackTrace(); } byte[] buf = md.digest(convertme); char[] chars = new […]

在java中将byte 转换为PrivateKey以进行数字签名

我需要先使用SHA-1摘要算法对String进行数字签名,然后应用RSA算法,使用PrivateKey对其进行签名。 我已经将PrivateKey存储在我的数据库中,作为base64中的数据类型char(250)。 我的问题是我不知道如何将其转换为PrivateKey以使用它进行登录: Cipher cipher = Cipher.getInstance(“RSA”); cipher.init(Cipher.ENCRYPT_MODE, privateKey); byte[] cipherText = cipher.doFinal(digest); Digest是我应用SHA-1摘要算法的字节数组: MessageDigest md = MessageDigest.getInstance(“SHA-1”); byte [] ba = cadena.getBytes(); byte [] digest = md.digest(ba); 这是我想到的解决方案,但如果有人有更好的解决方案我会很感激。

使用DigestInputStream计算来自同一InputStream的多个校验和

我试图找出如何使用DigestInputStream基于相同的InputStream读取多个摘要(md5,sha1,gpg)。 根据我在文档中检查的内容,似乎可以通过克隆摘要来实现。 有人可以说明一下吗? 我不想重新读取流来计算校验和。

HMC SHA1哈希 – Java生成与C#不同的哈希输出

这是对这个问题的跟进,但我正在尝试将C#代码移植到Java而不是Ruby代码移植到C#,就像相关问题中的情况一样。 我正在尝试validation从Recurly.js api返回的加密签名是否有效。 不幸的是,Recurly没有Java库来协助validation,所以我必须自己实现签名validation。 根据上面的相关问题( this ),以下C#代码可以生成validation从Recurly返回的签名所需的哈希: var privateKey = Configuration.RecurlySection.Current.PrivateKey; var hashedKey = SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(privateKey)); var hmac = new HMACSHA1(hashedKey); var hash = hmac.ComputeHash(Encoding.ASCII.GetBytes(dataToProtect)); return BitConverter.ToString(hash).Replace(“-“, “”).ToLower(); Recurly在其签名文档页面上提供以下示例数据: 未加密的validation消息 :[1312701386,transactioncreate,[account_code:ABC,amount_in_cents:5000,货币:美元]] 私钥 :0123456789ABCDEF0123456789ABCDEF 结果签名 :0f5630424b32402ec03800e977cd7a8b13dbd153-1312701386 这是我的Java实现: String unencryptedMessage = “[1312701386,transactioncreate,[account_code:ABC,amount_in_cents:5000,currency:USD]]”; String privateKey = “0123456789ABCDEF0123456789ABCDEF”; String encryptedMessage = getHMACSHA1(unencryptedMessage, getSHA1(privateKey)); private static byte[] getSHA1(String source) throws NoSuchAlgorithmException, […]

Hudson使用什么密码加密?

这是我在hudson/users/me/config.xml看到的: […] mEDUyJ:0c9e6f2556b9b3a0b9e9046c21490422b4a54877f057b527b2c0bd4dc83342d5 […] 算法是什么(如果是SHA1,那么mEDUyJ前缀是什么)? 例如,如何在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 […]

新的主题哈希openssl算法不同

从Java Framework管理openssl证书时遇到了一个问题。 openssl x509 -subject_hash … 输出与Java框架在调用X509_NAME_hash()时返回的输出不同,请参见下文。 原因是openssl改变了计算SHA1的方式。 现在,不是像在MD5中那样将哈希基于主题的ASN.1 DER表示,而是首先计算CANONICAL表示,然后根据它计算ASN.1 DER,然后将其用作SHA1算法的输入。 NativeCrypto.java : // — X509_NAME ———————————————————– public static int X509_NAME_hash(X500Principal principal) { return X509_NAME_hash(principal, “SHA1”); } private static int X509_NAME_hash(X500Principal principal, String algorithm) { try { byte[] digest = MessageDigest.getInstance(algorithm).digest(principal.getEncoded()); return Memory.peekInt(digest, 0, ByteOrder.LITTLE_ENDIAN); } catch (NoSuchAlgorithmException e) { throw new AssertionError(e); } } […]

Java 9弃用SHA1证书,还是其他问题?

[ 更新 ] Oracle刚刚修改了加密路线图( https://www.java.com/en/jre-jdk-cryptoroadmap.html ),他们不会弃用SHA-1进行协同编码: 2017-03-14 Target date changed from 2017-04-18 to 2017-07-18. Narrowed scope from all SHA-1 usage: only TLS will be affected, *code signing will not not be affected at this time*. 2017-03-14 Target date changed from 2017-04-18 to 2017-07-18. Narrowed scope from all SHA-1 usage: only TLS will be affected, *code […]

如何在Java中解密sha1加密的String

是否有可能解密之前使用Java中的SHA-1算法加密的字符串?