标签: sha

在实践中忽略SHA碰撞的可能性是否安全?

假设我们有十亿个独特的图像,每个图像一兆字节.我们计算每个文件内容的SHA-256哈希值.碰撞的可能性取决于:

  • 文件数量
  • 单个文件的大小

假设它为零,我们可以在多大程度上忽略这种可能性?

hash sha

197
推荐指数
3
解决办法
7万
查看次数

通常*认为有多少git sha是唯一标识给定代码库中的更改所必需的?

如果您要构建一个目录结构,其中一个目录以Git存储库中的提交命名,并且您希望它足够短以使您的眼睛不流血,但足够长以使其碰撞的可能性可以忽略不计,通常需要多少SHA子串?

假设我想要唯一地识别这种变化:https://github.com/wycats/handlebars.js/commit/e62999f9ece7d9218b9768a908f8df9c11d7e920

我可以使用前四个字符:https: //github.com/wycats/handlebars.js/commit/e629

但我觉得这样会有风险.但是,假设一个代码库,在几年内,可能会有30k的变化,如果我使用8个字符,碰撞的几率是多少?12?是否有一些通常被认为可接受的数字?

git github sha

193
推荐指数
4
解决办法
5万
查看次数

Git在哪里存储子模块的提交的SHA1?

我知道当你将一个子模块添加到git存储库时,它会跟踪由其sha1引用的该子模块的特定提交.

我试图找到存储此sha1值的位置.

.gitmodules.git/config文件只显示了子模块的路径,但不是的提交SHA1.

混帐子模块(1)参考只讲一个的gitlink条目和gitmodules(5)参考不说这事,无论是.

git sha git-submodules

122
推荐指数
1
解决办法
3万
查看次数

为什么Git不使用更现代的SHA?

我读到Git使用SHA-1摘要作为修订版的ID.为什么不使用更现代的SHA版本?

git cryptography sha

77
推荐指数
3
解决办法
2万
查看次数

在Android中使用DigestUtils找不到的方法

我正在尝试使用JDK 1.6在Android 2.3.1中使用库DigestUtils,但是在执行应用程序时出现以下错误:

Could not find method org.apache.commons.codec.binary.Hex.encodeHexString, referenced from method org.apache.commons.codec.digest.DigestUtils.shaHex

在这里你有堆栈跟踪:

02-03 10:25:45.153: I/dalvikvm(1230): Could not find method org.apache.commons.codec.binary.Hex.encodeHexString, referenced from method org.apache.commons.codec.digest.DigestUtils.shaHex
02-03 10:25:45.153: W/dalvikvm(1230): VFY: unable to resolve static method 329: Lorg/apache/commons/codec/binary/Hex;.encodeHexString ([B)Ljava/lang/String;
02-03 10:25:45.153: D/dalvikvm(1230): VFY: replacing opcode 0x71 at 0x0004
02-03 10:25:45.153: D/dalvikvm(1230): VFY: dead code 0x0007-0008 in Lorg/apache/commons/codec/digest/DigestUtils;.shaHex ([B)Ljava/lang/String;
02-03 10:25:45.163: D/AndroidRuntime(1230): Shutting down VM
02-03 10:25:45.163: W/dalvikvm(1230): threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-03 10:25:45.173: E/AndroidRuntime(1230): FATAL EXCEPTION: main …
Run Code Online (Sandbox Code Playgroud)

apache encryption android sha digest

71
推荐指数
3
解决办法
4万
查看次数

php mysqli_connect:客户端未知的身份验证方法[caching_sha2_password]

我使用php mysqli_connect登录MySQL数据库(全部在localhost上)

<?php
//DEFINE ('DB_USER', 'user2');
//DEFINE ('DB_PASSWORD', 'pass2');
DEFINE ('DB_USER', 'user1');
DEFINE ('DB_PASSWORD', 'pass1');
DEFINE ('DB_HOST', '127.0.0.1');
DEFINE ('DB_NAME', 'dbname');

$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

if(!$dbc){
    die('error connecting to database');    
}
?>
Run Code Online (Sandbox Code Playgroud)

这是mysql.user表: mysql.user表

MySQL Server ini文件:

[mysqld]
# The default authentication plugin to be used when connecting to the server
default_authentication_plugin=caching_sha2_password
#default_authentication_plugin=mysql_native_password
Run Code Online (Sandbox Code Playgroud)

caching_sha2_password在MySQL服务器ini文件,它不可能在所有与用户1或用户2登录;

错误:mysqli_connect():服务器请求的客户端[caching_sha2_password]未知的身份验证方法...

mysql_native_password在MySQL服务器ini文件,有可能与USER1登录,但用户2,同样的错误;


如何caching_sha2_password在mySql Server上登录?

php mysql hash sha

55
推荐指数
9
解决办法
8万
查看次数

用盐腌SHA-512哈希暴力多长时间?(提供盐)

这是Java中的算法:

public String getHash(String password, String salt) throws Exception {
    String input = password + salt;
    MessageDigest md = MessageDigest.getInstance(SHA-512);
    byte[] out = md.digest(input.getBytes());
    return HexEncoder.toHex(out);
}
Run Code Online (Sandbox Code Playgroud)

假设盐是已知的.我想知道在密码是字典单词时以及它不是字典单词时暴力的时间.

hash cryptography salt sha brute-force

54
推荐指数
3
解决办法
9万
查看次数

Git(Hub)如何处理来自短SHA的可能冲突?

Git和GitHub都显示SHAs的短版本 - 只是前7个字符而不是全部40个 - 并且Git和GitHub都支持将这些简短的SHA作为参数.

例如 git show 962a9e8

例如https://github.com/joyent/node/commit/962a9e8

鉴于可能性空间现在降低了几个数量级,"仅" 2.68亿,Git和GitHub如何防止碰撞?他们如何处理它们?

git cryptography github sha

53
推荐指数
3
解决办法
1万
查看次数

如何在Android中计算字符串的SHA-256哈希值?

我想在Android中获取字符串的SHA256.

这是我要匹配的PHP代码:

echo bin2hex(mhash(MHASH_SHA256,"asdf"));
//outputs "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b"
Run Code Online (Sandbox Code Playgroud)

现在,在Java中,我正在尝试执行以下操作:

            String password="asdf"
            MessageDigest digest=null;
    try {
        digest = MessageDigest.getInstance("SHA-256");
    } catch (NoSuchAlgorithmException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
       digest.reset();
       try {
        Log.i("Eamorr",digest.digest(password.getBytes("UTF-8")).toString());
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

但这打印出来:"a42yzk3axdv3k4yh98g8"

我在这做错了什么?


解决方案感谢erickson:

 Log.i("Eamorr",bin2hex(getHash("asdf")));

 public byte[] getHash(String password) {
       MessageDigest digest=null;
    try {
        digest = MessageDigest.getInstance("SHA-256");
    } catch (NoSuchAlgorithmException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
       digest.reset();
       return digest.digest(password.getBytes());
 }
static String bin2hex(byte[] data) …
Run Code Online (Sandbox Code Playgroud)

php java android sha digest

47
推荐指数
3
解决办法
5万
查看次数

cherry-pick一个提交并保留原始的SHA代码

我想在保留它的原始SHA提交代码的同时在提取的遥控器上挑选提交(我当前的分支基于这个我重置为先前状态的遥控器).

git commit sha cherry-pick

47
推荐指数
5
解决办法
2万
查看次数