说我有浮动.我想要这个Float的小数部分的前32位?具体来说,我正在寻找sha256伪代码的这部分工作(来自维基百科)
# Note 1: All variables are unsigned 32 bits and wrap modulo 232 when calculating
# Note 2: All constants in this pseudo code are in big endian
# Initialize variables
# (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):
h[0..7] := 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
Run Code Online (Sandbox Code Playgroud)
我天真地尝试做地板(((sqrt 2) - 1)*2 ^ 32),然后将返回的整数转换为Word32.这根本不是正确的答案.我认为通过乘以2 ^ 32的功率,我实际上将它移动了32个位置(在地板之后).显然,并非如此.无论如何,长期和短期是,我如何生成h [0..7]?
如何使用PHP识别sha256哈希?另外,有没有办法确定字符串是否是sha256哈希,即使它是盐渍的?
我不需要知道哈希的真正价值(我知道这是不可能的),但我只需要验证字符串,所以如果字符串是sha256哈希,我可以以某种方式工作,如果它是另一种方式不是.
我最近在I2P源代码(Java)中发现了以下片段:
private final SessionKey calculateSessionKey(BigInteger myPrivateValue, BigInteger publicPeerValue) {
SessionKey key = new SessionKey();
BigInteger exchangedKey = publicPeerValue.modPow(myPrivateValue, CryptoConstants.elgp);
byte buf[] = exchangedKey.toByteArray();
byte val[] = new byte[32];
if (buf.length < val.length) {
System.arraycopy(buf, 0, val, 0, buf.length);
... //irrelevant details
} else { // (buf.length >= val.length)
System.arraycopy(buf, 0, val, 0, val.length);
... //irrelevant details
}
key.setData(val);
return key;
}
Run Code Online (Sandbox Code Playgroud)
据我所知,前256位buf[]被直接复制到会话密钥,并且没有运行SHA256摘要.我不是加密专家(也不是java),任何人都可以解释我,这不是安全漏洞吗?我的意思是,在标准的Diffie-Hellman维基页面中,SHA哈希也在密钥上运行.如果确实如此,您是否也可以举例说明如何利用它?
我需要破解sha256哈希,我知道答案是坐标,但我不知道坐标值的例子是什么:
3f1c756daec9ebced7ff403acb10430659c13b328c676c4510773dc315784e4e
58.375782 26.742632
Run Code Online (Sandbox Code Playgroud)
是否有可能创建一个python脚本,使两个变量(值均为00.000000),然后将它们添加到togheter(例如:) k=i+" "+j,然后将k转换为sha256并将其与sha256进行比较,我试图破解.如果它不等于sha256被破解,那么它再次添加i一个值(i=i+00.000001)和triess.等等等等
我正在使用guava 14来执行String散列,如下所示:
Hashing.sha256().newHasher().putString("String").hash().toString();
Run Code Online (Sandbox Code Playgroud)
=>
4d1ca6dce72e20ce214b706168340683bb6b571a7c977c1a9fe029a1cc1c4d06
Run Code Online (Sandbox Code Playgroud)
刚升级到guava16,
调用这个函数:
Hashing.sha256().newHasher().putString("String", Charsets.UTF-8).hash().toString()给我一个不同的结果.
=>
b2ef230e7f4f315a28cdcc863028da31f7110f3209feb76e76fed0f37b3d8580
Run Code Online (Sandbox Code Playgroud)
我怀疑旧版本使用的是默认字符集,但是在guava16上切换Charsets不会给我与guava14相同的结果.我在这做错了什么?
我可以用PHP在PHP中哈希:
$orig_pw = "abcd";
$salt = 5f8f041b75042e56;
$password = hash('sha256', $orig_pw . $salt);
Run Code Online (Sandbox Code Playgroud)
(这不是我实现它的方式,这只是一个例子.盐对每个人都不同)
有了这个,存储的密码是:
bc20a09bc9b3d3e1fecf0ed5742769726c93573d4133dbd91e2d309155fa9929
Run Code Online (Sandbox Code Playgroud)
但是如果我尝试在Java中做同样的事情,我会得到不同的结果.我试过了String password = "abcd";
byte[] salt = hexStringToByteArray("5f8f041b75042e56");
try {
System.out.println(new String(getHash(password, salt)));
} catch (NoSuchAlgorithmException e1) {
e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
这两种方法:
public byte[] getHash(String password, byte[] salt) throws NoSuchAlgorithmException {
MessageDigest digest = MessageDigest.getInstance("SHA-256");
digest.reset();
digest.update(salt);
try {
return digest.digest(password.getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
public byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new …Run Code Online (Sandbox Code Playgroud) 我写了一些生锈问题的锈迹代码.
let mut sha256 = Sha256::new();
sha256.input_str(input.as_slice());
for i in range(0i,16) {
println!("i == {}, hash == {}", i, sha256.result_str());
let bytes = sha256.result_bytes().as_slice();
sha256.input(bytes);
}
Run Code Online (Sandbox Code Playgroud)
错误是:
$ cargo build && ./target/hello_world asdfasdf
Compiling hello_world v0.1.0 (file:///home/chris/hello_world)
src/hello_world.rs:41:21: 41:42 error: borrowed value does not live long enough
src/hello_world.rs:41 let bytes = sha256.result_bytes().as_slice();
^~~~~~~~~~~~~~~~~~~~~
src/hello_world.rs:39:27: 43:6 note: reference must be valid for the block at 39:26...
src/hello_world.rs:39 for i in range(0i,16) {
src/hello_world.rs:40 println!("i == {}, hash == {}", i, sha256.result_str()); …Run Code Online (Sandbox Code Playgroud) 我想知道如何使用openSSL工具以sha256作为消息摘要来签署证书签名请求.
我不太明白摘要是否已在请求中计算,或者是否由CA计算.
对于创建请求,工具req允许指定要使用的消息摘要,-sha256是一个选项.
但是,为了签署请求,openSSL提供了两个工具:ca和x509.但是,这些都不允许使用sha256.根据官方文档,ca仅支持md5,sha1和mdc2.x509仅支持md2,md5,sha1,mdc2.
谢谢.
在发出API请求之前,我需要在SHA256中加密我的密码.我无法在Angular2中找到任何SHA-256的实现
我需要使用哈希一些字符串SHA256.使用BigQuery这样做会导致我理解为BASE64结果,因为我需要不同的东西.
例如,如果我想散列"def@gmail.com",结果应该是:
c392e50ebeca7bea4405e9c545023451ac56620031f81263f681269bde14218b
但这样做BigQuery:
SELECT SHA256("def@gmail.com") as sha256;
Run Code Online (Sandbox Code Playgroud)
结果是:
w5LlDr7Ke + pEBenFRQI0UaxWYgAx + BJj9oEmm94UIYs =
这是我需要得到的第一个结果,如果可能的话,任何想法BigQuery,我试图避免需要使用javascript它.
sha256 ×10
hash ×3
php ×2
sha ×2
angular ×1
coordinates ×1
cracking ×1
cryptography ×1
encryption ×1
guava ×1
haskell ×1
java ×1
javascript ×1
lifetime ×1
openssl ×1
python ×1
rust ×1
security ×1
ssl ×1