草庐IT

java - 哪个 SHA-256 是正确的? Java SHA-256 摘要或 Linux 命令行工具

当我在Java中使用以下方法计算字符串的SHA-256时publicstaticvoidmain(String[]args)throwsNoSuchAlgorithmException{MessageDigestmd=MessageDigest.getInstance("SHA-256");byte[]hash=md.digest("password".getBytes());StringBuffersb=newStringBuffer();for(byteb:hash){sb.append(Integer.toHexString(b&0xff));}System.out.printl

java - SHA256withRSA 和 SHA256 然后 RSA 之间的区别

用以下两种方法计算签名有什么区别?使用Signature.getInstance("SHA256withRSA")计算签名使用MessageDigest.getInstance("SHA-256")计算SHA256并使用Signature.getInstance("RSA");计算摘要以获得签名?如果它们不同,有没有办法修改方法2,使两种方法给出相同的输出?我尝试了以下代码:packagemysha.mysha;importjava.security.MessageDigest;importjava.security.PrivateKey;importjava.security.Sec

java - MessageDigest.getInstance ("SHA") 返回什么特定的哈希算法?

MessageDigest.getInstance("SHA")似乎工作并给了我一个MessageDigest,但我不知道它给了我什么算法。是SHA-1还是SHA-0还是..?我对我的机器上发生的事情不感兴趣。我想知道它是否会为所有有效的Java实现返回sha0或sha1(或者它是未定义的)。 最佳答案 JCESpecification列出实现预期支持的标准名称。指定了“SHA-1”,以及SHA-256、SHA-384和SHA-512。“SHA”、“SHA-0”和“SHA-2”不是标准名称,因此可能根本不受支持。您不能保证“SHA”

Java:如何为文件创建 SHA-1?

在纯Java6中为非常大的文件创建SHA-1的最佳方法是什么?如何实现此方法:publicabstractStringcreateSha1(java.io.Filefile); 最佳答案 使用MessageDigest类并逐段提供数据。下面的示例忽略了将byte[]转换为字符串和关闭文件等细节,但应该会给您大致的概念。publicbyte[]createSha1(Filefile)throwsException{MessageDigestdigest=MessageDigest.getInstance("SHA-1");InputS

java - 密码 'aes256-cbc' 是必需的,但不可用

我正在尝试使用JSch进行SFTP,但遇到了一些错误:com.jcraft.jsch.JSchException:Thecipher'aes256-cbc'isrequired,butitisnotavailable.下面是我使用的代码。我错过了什么吗?JSchjsch=newJSch();Sessionsession=null;jsch.addIdentity("C:\\privatekey.ppk","Password");session=jsch.getSession("user","54.251.240.234",22);session.setConfig("StrictHos

java - 如何解密 SHA-256 加密字符串?

我有一个经过加盐处理的字符串,使用SHA-256进行哈希处理,然后进行base64编码。有没有办法将此字符串解码回其原始值? 最佳答案 SHA-256是cryptographic(one-way)hashfunction,所以没有直接的方法来解码它。加密哈希函数的全部目的是您无法撤消它。您可以做的一件事是brute-forcestrategy,你猜什么被散列了,然后用相同的函数散列它,看看它是否匹配。除非散列数据很容易猜到,否则可能需要很长时间。您可能会发现问题“Differencebetweenhashingapasswordan

java相当于php的hmac-SHA1

我正在寻找与此php调用等效的java:hash_hmac('sha1',"test","secret")我试过这个,使用java.crypto.Mac,但两人不同意:Stringmykey="secret";Stringtest="test";try{Macmac=Mac.getInstance("HmacSHA1");SecretKeySpecsecret=newSecretKeySpec(mykey.getBytes(),"HmacSHA1");mac.init(secret);byte[]digest=mac.doFinal(test.getBytes());Stringenc

java - HMAC-SHA1 : How to do it properly in Java?

我正在使用HMAC-SHA1散列一些值,使用Java中的以下代码:publicstaticStringhmacSha1(Stringvalue,Stringkey){try{//Getanhmac_sha1keyfromtherawkeybytesbyte[]keyBytes=key.getBytes();SecretKeySpecsigningKey=newSecretKeySpec(keyBytes,"HmacSHA1");//Getanhmac_sha1MacinstanceandinitializewiththesigningkeyMacmac=Mac.getInstance(

php mysqli_connect : authentication method unknown to the client [caching_sha2_password]

我正在使用phpmysqli_connect登录MySQL数据库(都在本地主机上)这是mysql.user表:MySQL服务器ini文件:[mysqld]#Thedefaultauthenticationplugintobeusedwhenconnectingtotheserverdefault_authentication_plugin=caching_sha2_password#default_authentication_plugin=mysql_native_password在MySQL服务器ini文件中使用caching_sha2_password,根本不可能使用user1或

mysql - 在 MySQL 中存储 SHA1 哈希值

当我想将SHA1哈希的结果存储在MySQL数据库中时,我遇到了一个简单的问题:我存储散列结果的VARCHAR字段应该多长时间? 最佳答案 我将VARCHAR用于可变长度数据,但不用于固定长度数据。因为SHA-1值总是160位长,所以VARCHAR只会浪费anadditionalbyteforthelengthofthefixed-lengthfield.而且我也不会存储SHA1的值正在返回。因为它每个字符只使用4位,因此需要160/4=40个字符。但是如果你使用每个字符8位,你只需要一个160/8=20字符长的字段。所以我推荐你使用