标签: sha256

小端数据和sha 256

我必须以小端形式生成sha256数据哈希.在使用sha 256算法之前,我想知道是否必须先将其转换为big endian.或者,如果算法是"与endian无关"的.

编辑:对不起,我想我不清楚.我想知道的是:sha256算法需要用某些位填充消息的结尾.第一步是在消息的末尾添加1.然后,用零填充它直到结束.最后,您必须以位为单位添加消息的长度.我想知道的是这个填充是否可以用小端进行.例如,对于640位消息,我可以将最后一个字写为0x280(大端)或0x8002000(小端).这个填充可以用小端进行吗?

endianness sha256

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

在Zend Server CE 5.5中使用sha256的PHP crypt()会截断提供的salt

在从Zend Server CE 5.1升级到Zend Server CE 5.5期间,PHP也从5.3.5升级到5.3.8.在此转换之后,我正在处理的zend应用程序的登录功能突然中断.

试图调试它,看起来好像执行crypt()不反映PHP手册,或者我误解了它.如果我冒险猜测,那就是后者.

我使用一个16字符长的盐作为较大盐的一部分使用SHA256,它在PHP手册中用作示例.

$password = //string entered at login
$salt = '$5$rounds=250000$1234abcd5678defg$';
Run Code Online (Sandbox Code Playgroud)

在我输入密码后输入密码

$hash = crypt($password, $salt);
Run Code Online (Sandbox Code Playgroud)

我得到一个像这样的字符串作为返回值:

$5$rounds=250000$1234abcd5678$tI.Oiz.YwWjIwT3K.SLU8SwUZ9J0/odBCkbE6t0igeB
Run Code Online (Sandbox Code Playgroud)

令我感到困惑的是16字符盐,它是较大部分的一部分(上面的1234abcd5678defg),现在被截断为12个字符.

这是按预期的吗?该crypt()函数现在似乎比以前返回不同的结果 - 通常是PHP版本之间的?更改日志中没有任何内容表明加密算法有任何根本性的变化.

php crypt sha256 zend-server-ce

5
推荐指数
1
解决办法
736
查看次数

SHA256签名

我有一张智能卡,我需要用这个来签名.这是我在stackover中看到的一个大问题.

我不能使用RSACryptoServiceProvider,bkz它不支持RSA-SHA256 alogrithm.

在First,我使用CAPICOM.dll,如下面的代码,

SignedData sed = new SignedData();
sed.Content = "a"; // data to sign
Signer ser = new Signer();
ser.Certificate = cc;
string singnn = sed.Sign(ser, false, CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);
Run Code Online (Sandbox Code Playgroud)

但是没有公钥来验证我的签名值,我无法从capicom.dll获取验证密钥.

之后 ,

我使用X509Certificate2和RSACryptoServiceProvider,如下面的代码,

        X509Certificate2 certificate = new X509Certificate2();
        // Access Personal (MY) certificate store of current user
        X509Store my = new X509Store(StoreName.My, StoreLocation.CurrentUser);
        my.Open(OpenFlags.ReadOnly);

        // Find the certificate we'll use to sign            
        RSACryptoServiceProvider csp = null;
        foreach (X509Certificate2 cert in my.Certificates)
        {
            if (cert.Subject.Contains(certSubject))
            {
                // We found it. …
Run Code Online (Sandbox Code Playgroud)

sha1 rsa rsacryptoserviceprovider signature sha256

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

Go和PHP中的SHA256给出了不同的结果

我正在尝试通过HTTP将SHA256哈希字符串发送到服务器,我想通过执行SHA256哈希并验证两个匹配来进行身份验证.出于测试目的,我使用相同的字符串,但是我的结果不匹配.这可能是我的base64_encode调用的默认编码方案吗?谢谢.

在PHP我正在做:

$sha = hash("sha256", $url, true);
$sha = base64_encode(urlencode($sha));
Run Code Online (Sandbox Code Playgroud)

在Go我正在做

//convert string to byte slice
converted := []byte(to_hash)

//hash the byte slice and return the resulting string
hasher := sha256.New()
hasher.Write(converted)
return (base64.URLEncoding.EncodeToString(hasher.Sum(nil)))
Run Code Online (Sandbox Code Playgroud)

php sha sha256 go

5
推荐指数
1
解决办法
1460
查看次数

SHA256是否往返

如果采用32位序列并对其执行CRC32,则会得到另一个32位序列; 如果你做CRC32这个,你得到另一个,依此类推.很容易证明,如果你继续这样做,你最终会得到一个2 ^ 32位序列的循环,然后重新开始.

简单的问题:有没有人知道SHA256是否同样适用(或不相同),从256位序列开始?在重新开始之前,类似的过程会循环通过所有2 ^ 256个可能的256位序列的循环吗?或者这个哈希中是否有已知(或可能)更短的循环?

布赖恩

hash sha256

5
推荐指数
1
解决办法
212
查看次数

SHA256的"纯"方案实现(R5RS)?

我可以在Scheme中使用SHA256使用外部库(Java,C或系统相关)或使用特定的Scheme实现(例如Chicken),但我想知道是否存在"纯"方案实现.

hash scheme sha256 r5rs

5
推荐指数
1
解决办法
1019
查看次数

OpenSSL Hmac和BouncyCastle Hmac不同

我试图找出为什么openssl中的hmac没有给我与java中的hmac相同的结果.

在开放的ssl

echo -n "Hello" | openssl dgst -sha256 -hmac 04d6b077d60e323711b37813b3a68a71
Run Code Online (Sandbox Code Playgroud)

输出:cc598d8840fe409d5fcc1c1c856f9e8c311d1c458850615555857b023f1cd94c

在java中

String key = "04d6b077d60e323711b37813b3a68a71"
SecretKeySpec key2 = new SecretKeySpec(Hex.decode(key), "RAW");
String data = "Hello";
Mac hmac = Mac.getInstance("Hmac-SHA256", BouncyCastleProvider.PROVIDER_NAME);
hmac.init(key2)
byte[] bytes = hmac.doFinal(data.getBytes());
System.out.println(Hex.toHexString(bytes));
Run Code Online (Sandbox Code Playgroud)

输出:877f9c8eb44c20987e3978928fbfcea0f1cf99c88f9db904596921b7ecf0613b

我不知道为什么这些不同.

java openssl bouncycastle sha256 hmac

5
推荐指数
1
解决办法
1399
查看次数

为什么我在azure网站上的链中有一个错误的(sha1)即时startcom证书?

我在https://paper-shape.com上的直接证书得到了一个弱签名算法SHA1:https://www.ssllabs.com/ssltest/analyze.html d = paper-shape.com

我按照这些说明.我根据OpenSSL和每个证书导出向导创建了我的pfx文件.

CRT和pem(来自startcom的直接证书)似乎没问题,因为以下命令在两者(CRT和PEM)上显示"签名算法:sha256WithRSAEncryption":

$ openssl x509 -text -in paper-shape.com.crt

在我的pfx创建过程中出现问题或者azure网站取消了我的直接证书.

有人有想法吗?

sha1 sha256 azure ssl-certificate azure-web-sites

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

使用SHA-2证书签署面向.NET Framework 4.0的VSTO Excel加载项

我有一个VSTO 2010 Excel加载项,目标是.Net Framework 4.0,Visual Studio 2010.

过去几年我们使用SHA-1证书来签署清单和程序集.该应用程序已部署给许多最终用户.现在,随着SHA-1弃用政策从2016年1月开始生效,CA发布的续订证书使用SHA-256进行密钥管理.

请查看使用各种版本的Visual Studio构建Excel 2010 VSTO加载项生成的文件:

注意:使用SHA-2算法键入用于以下所有情况的证书.

VS 2010 SP1,Target Framework 4.0生成的.VSTO:

DigestMethod对于所提到的算法dependentAssemblyhash是SHA1,使用SHA2证书时也是如此.

<dependentAssembly dependencyType="install" codebase="ExcelAddIn1.dll.manifest" size="18274">
    <assemblyIdentity name="ExcelAddIn1.dll" version="1.0.0.1" publicKeyToken="2142698160a31911" language="neutral" processorArchitecture="msil" type="win32" />
    <hash>
        <dsig:Transforms>
            <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <dsig:DigestValue>DIGEST VALUE</dsig:DigestValue>
    </hash>
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

publisherIdentity标签,所述SignatureMethodDigestMethod使用是SHA256,这是根据该证书的算法.

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" />

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
Run Code Online (Sandbox Code Playgroud)

.VSCO由VS 2013 SP4和VS 2015生成,目标框架4.0:

请注意<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />标记中提到的算法是SHA1.这与VS 2010生成的内容相同.

<dependentAssembly dependencyType="install" codebase="ExcelAddIn1.dll.manifest" …
Run Code Online (Sandbox Code Playgroud)

excel vsto .net-4.0 sha256 digital-signature

5
推荐指数
0
解决办法
1078
查看次数

Docker历史基础映像添加:sha256hash

我试图更好地理解docker history输出。当我运行时,docker history nginx:latest我得到的输出几乎与Dockerfile相匹配:

/bin/sh -c #(nop) CMD ["nginx" "-g" "daemon off;"]
/bin/sh -c #(nop) EXPOSE 443/tcp 80/tcp/bin/sh -c ln -sf /dev/stdout /var/log/nginx/access.log  && ln -sf /dev/stderr /var/log/nginx/error.log
/bin/sh -c apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62  && echo "deb http://nginx.org/packages/mainline/debian/ jessie nginx" >> /etc/apt/sources.list && apt-get update && apt-get install --no-install-recommends --no-install-suggests -y       ca-certificates nginx=${NGINX_VERSION} nginx-module-xslt nginx-module-geoip nginx-module-image-filter nginx-module-perl nginx-module-njs gettext-base  && rm -rf /var/lib/apt/lists/*
/bin/sh -c #(nop) ENV NGINX_VERSION=1.11.9-1~jessie
/bin/sh -c #(nop) MAINTAINER …
Run Code Online (Sandbox Code Playgroud)

linux hash sha256 docker dockerfile

5
推荐指数
1
解决办法
649
查看次数