标签: sha256

java hmac/sha512代

我有这个PHP代码生成一个HMAC(而不是一个简单的消息摘要):

<?php 
$key = "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF";
$binkey = pack("H*", $key); 
echo strtoupper(hash_hmac('sha512', "ABC", $binkey)); 
?>
Run Code Online (Sandbox Code Playgroud)

并与ABC输入输出是:

100A6A016A4B21AE120851D51C93B293D95B7D8A44B16ACBEFC2D1C9DF02B6F54FA3C2D6802E52FED5DF8652DDD244788A204682D2D1CE861FDA4E67F2792643
Run Code Online (Sandbox Code Playgroud)

我需要在java中克隆它.

所以这是我目前的java克隆:

private String generateHMAC( String datas )
    {

        //                final Charset asciiCs = Charset.forName( "utf-8" );
        Mac mac;
        String result = "";
        try
        {
            byte[] bytesKey = PayboxConstants.KEY.getBytes( );
            final SecretKeySpec secretKey = new SecretKeySpec( bytesKey, "HmacSHA512" );
            mac = Mac.getInstance( "HmacSHA512" );
            mac.init( secretKey );
            final byte[] macData = mac.doFinal( datas.getBytes( ) );
            byte[] hex = new Hex( …
Run Code Online (Sandbox Code Playgroud)

php java sha256 hmac

2
推荐指数
1
解决办法
6381
查看次数

MySQL:使用其他HASH字段的UNIQUE文本字段

在我的MySQL DB中,有一个定义如下的表:

CREATE TABLE `mytablex_cs` (
  `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `tag` varchar(6) COLLATE utf8_bin NOT NULL DEFAULT '',
  `value` text COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`id`),
  KEY `kt` (`tag`),
  KEY `kv` (`value`(200))
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
Run Code Online (Sandbox Code Playgroud)

我需要在value字段上实现UNIQUE约束(键)。

我知道尚无法在blobor或text字段的整个值上定义唯一索引,但是建议使用一个工单(?)来实现功能(请参阅本页),建议使用以下方法创建唯一键:像已经为其他字段实现的哈希。

现在,我想使用一种类似的方法向表中添加另一个包含哈希的字段,并在该字段上创建唯一键。

我介绍了创建此哈希的可能方法,并且由于我想避免冲突(我需要插入几百万个条目),因此即使快速搜索给出,RIPEMD-160算法似乎也是最好的算法我有几种使用SHA256甚至SHA1和MD5的类似解决方案。

我完全缺乏密码学知识,那么选择这种方法的缺点是什么?

我有另一个问题:MySQL当前使用哪种算法创建哈希?

mysql md5 cryptography sha256 unique-key

2
推荐指数
1
解决办法
2839
查看次数

没有模块_sha256安装cellProfiler

我正在尝试在linux上为开发人员安装cellprofiler,并获得一个名为"_sha256"的"无模块"错误.我在几个博客上找到了解决方案,但没有任何效果,有人可以帮我解决这个问题吗?

这是我的配置:

Python 2.7.3 (default, Aug  1 2012, 05:16:07) 
[GCC 4.6.3] on linux2
Run Code Online (Sandbox Code Playgroud)

linux:

uname -m
i686

Distributor ID: Ubuntu
Description:    Ubuntu 12.04.2 LTS
Release:        12.04
Codename:       precise
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

local@pc-ellenberg23:~/Softwares/cellProfiler/CellProfiler$ make -f Makefile.CP2 PREFIX="${HOME}/usr/cp2"
All pre-checks executed successfully.
export PATH="/home/local/usr/cp2/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-7-openjdk-i386/bin:/usr/lib/jvm/java-7-openjdk-i386/bin:/usr/lib/jvm/java-7-openjdk-i386/bin" && \
                    export LD_LIBRARY_PATH="/home/local/usr/cp2/lib:${LD_LIBRARY_PATH}" && \
                    sh setuptools-0.6c11-py2.6.egg --prefix="/home/local/usr/cp2"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/local/Softwares/cellProfiler/CellProfiler/setuptools-0.6c11-py2.6.egg/setuptools/command/easy_install.py", line 21, in <module>
  File "/home/local/Softwares/cellProfiler/CellProfiler/setuptools-0.6c11-py2.6.egg/setuptools/package_index.py", line 2, in <module>
  File "/home/local/usr/cp2/lib/python2.6/urllib2.py", line 93, in <module>
    import hashlib …
Run Code Online (Sandbox Code Playgroud)

python sha256 hashlib

2
推荐指数
1
解决办法
3066
查看次数

C#支持对单个XML元素进行RSA SHA 256签名

我遇到过使用.NET Framework 4.5版的阻止程序来处理带有数字签名的XML.

我的问题是基于使用RSA SHA-256算法使用X.509证书签署单个XML元素的需要.我已经阅读了很多关于这个主题的.NET帖子,看来最初在CLR安全项目RSAPKCS1SHA256SignatureDescription.cs类中开发了一个解决方案.RSAPKCS1SHA256SignatureDescription当然已经被整合到.net运行时中,从.NET 4.5开始,现在可以在分布式二进制System.Deployment.dll下使用.我在.NET中尝试使用RSA SHA-256对特定的XML元素进行签名,但是还没有取得任何成功.

我正在尝试使用WSSE令牌签署符合Oasis ebms标准的SOAP消息.请注意,该课程的目的是为了满足Soap With Attachments(SwA)和签署个人附件.我的代码如下

我的代码如下:

using System;
using System.Collections.Generic;
using System.IO;
using System.IdentityModel.Tokens;
using System.Security;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography.Xml;
using System.ServiceModel.Channels;
using System.ServiceModel.Security;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.Xml.Serialization;
using System.Deployment.Internal.CodeSigning;

namespace TestCSharpX509CertificateRSSHA256
{
    public class SignatureSupportUtility
    {

    private bool IsSignatureContentTransform
    {
        get
        {
          return true;
          //get IsSignatureContentTransform                
        }
    }

       public SignatureSupportUtility()
       {
          Register();
       }


    private static void Register()
    {
        CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription), "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256");
    }

    private void Sign(Message message, string[] elementIdsToSign, …
Run Code Online (Sandbox Code Playgroud)

c# xml signature sha256 x509

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

如何在openssl中创建sha256指纹

我想sha256指纹使用openssl.我试过了,但你必须要sha1.我该怎么办?

我正在使用OpenSSL 1.0.1f.

命令

openssl md5 * >rand.dat

openssl genrsa -rand rand.dat -aes256 2048 > server.key

openssl req -new -key server.key -sha256 -config openssl.cfg > server.csr

openssl x509 -fingerprint -sha256 -in server.csr -req -signkey server.key -extensions v3_req -extfile openssl.cfg -out server.cer
Run Code Online (Sandbox Code Playgroud)

更改默认值如下:

[ CA_default ]
default_md  = sha256    # Change

[ req ]
req_extensions = v3_req     # Uncomment
Run Code Online (Sandbox Code Playgroud)

openssl sha256

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

初始化变量为十六进制的优点

我正在研究一个用 C++ 编码的哈希函数,我想知道为什么主常量变量用十六进制值初始化。喜欢

unsigned long i= 0x428a2f98 ;
Run Code Online (Sandbox Code Playgroud)

如果是的话,这样做是否是为了性能,请解释一下,因为我认为它已在某个时候转换为整数值。

c++ hash hash-function sha256

2
推荐指数
1
解决办法
4179
查看次数

Mac OS X上的OpenSSL用于SHA-256签名算法

我想用OpenSSL创建一个自签名证书(root ca).签名算法需要是具有SHA-256哈希的ECDSA签名.在我的Mac OS X(优胜美地)上,我安装了OpenSSL版本0.9.8zc(从2014年10月15日起).当我openssl ciphers -v在命令行上调用时,似乎我当前的OpenSSL版本不支持SHA2(使用SHA-256等).

DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
EDH-RSA-DES-CBC3-SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1
EDH-DSS-DES-CBC3-SHA    SSLv3 Kx=DH       Au=DSS  Enc=3DES(168) Mac=SHA1
DES-CBC3-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1
DES-CBC3-MD5            SSLv2 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=MD5 
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-DSS-AES128-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA1
AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-RSA-SEED-SHA        SSLv3 Kx=DH       Au=RSA  Enc=SEED(128) Mac=SHA1
DHE-DSS-SEED-SHA        SSLv3 Kx=DH       Au=DSS  Enc=SEED(128) Mac=SHA1 …
Run Code Online (Sandbox Code Playgroud)

macos openssl sha256 ecdsa

2
推荐指数
1
解决办法
7618
查看次数

Golang Base64编码用户密码的SHA256摘要

我正在尝试完成Top Code Go学习挑战作为学习去的工具.我目前正在研究他们的Simple API Web Server问题.部分问题要求您加密密码字符串,如"'{SHA256}'+ Base64编码SHA256用户密码摘要"

我使用以下代码执行此操作,但结果与提供的测试用例不匹配.

import (
    "encoding/base64"
    "crypto/sha256"
)

func encrtyptPasswords(password string) string {
    h := sha256.New()
    return "{SHA256}" + 
       string(base64.StdEncoding.EncodeToString(h.Sum([]byte(password))))
}
Run Code Online (Sandbox Code Playgroud)

对于abcd1234的输入,它应加密到:{SHA256} 6c7nGrky_ehjM40Ivk3p3-OeoEm9r7NCzmWexUULaa4 =

但我得到{SHA256} YWJjZDEyMzTjsMRCmPwcFJr79MiZb7kkJ65B5GSbk0yklZkbeFK4VQ ==.我怀疑我使用加密库是错误的,但我不确定我应该使用什么,因为这似乎是SHA256的标准库加密方法.

hash cryptography sha256 go

2
推荐指数
1
解决办法
6131
查看次数

NodeJS crypto.createHmac SHA256 无法正常工作

我目前正在尝试实现我们正在使用的库的身份验证部分,但我偶然发现了一个奇怪的数据签名问题,NodeJS 中的 crypto.createHmac 的输出大约是 hash_hmac 的一半在 PHP 中,这是 PHP 和 NodeJS 之间唯一不同的数据部分(我们需要在这里使用 NodeJS)

用于在 NodeJS 中创建签名的确切代码是,

authorization["oauth_signature"] = crypto.createHmac('SHA256', process.env.SECRET).update(toSign).digest('base64');
Run Code Online (Sandbox Code Playgroud)

对于 PHP,它是

$authorization["oauth_signature"] = base64_encode(hash_hmac("SHA256", $signatureString . $signingKey, $secret));
Run Code Online (Sandbox Code Playgroud)

但是 NodeJS 版本的输出是

7LkQP+qKR1gSdPq/AgH/3No3ps7EtZXnqwjivMixvM8=
Run Code Online (Sandbox Code Playgroud)

对于 PHP,它是

NmQ0MWIzYmJiMjI2YzFlMDhiYzY3NzVmMWY0MzEwNDlhNDU3NDI0ZGJlMzU3NjJhYmMwYjgwYzZjMDE4NDM4OA==
Run Code Online (Sandbox Code Playgroud)

其中有超过两倍的数据

我是否必须为 NodeJS 版本使用不同的库,而不是在一个库中构建?顺便说一句,我们在 Microsoft Azure 上托管我们的 NodeJS 后端,不确定这是否相关,但至少值得一提。

编辑:

我发现了这个问题,PHP中的hash_hmac自动将其数据导出为十六进制数据,crypto.createHmac将其数据导出为我直接转换为base64的原始二进制数据,我需要做的就是首先将数据导出为十六进制然后转换到base64。

php sha256 azure hmac node.js

2
推荐指数
1
解决办法
6126
查看次数

从Java生成的Sha256哈希与OpenSSL和Sha256Sum实用程序不同。为什么?

这是一个Java代码,可为Java中的字符串生成sha256哈希。

public static void main(){

    String data = "hello world";

    // Generate the Sha256 hash using Apache Common Codec library
    String hash = DigestUtils.sha256Hex( data);

    System.out.println("Apache : Sha256hash: "+ hash);

    // Generate Sha 256 hash by using guava library
    final String hashed = Hashing.sha256()
            .hashString(data, StandardCharsets.UTF_8)
            .toString();


    System.out.println("Guava  : Sha256hash: "+ hashed);
}
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,我得到以下值。两个哈希完全相同。

Apache : Sha256hash: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
Guava  : Sha256hash: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
Run Code Online (Sandbox Code Playgroud)

现在,我从命令行为字符串“ hello world”生成了Sha256哈希。

命令行util sha2

echo "hello world" | sha2 -256
SHA-256 ((null)) = a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447
Run Code Online (Sandbox Code Playgroud)

OpenSSL实用程序

echo 'hello …
Run Code Online (Sandbox Code Playgroud)

java apache openssl sha256 guava

2
推荐指数
1
解决办法
167
查看次数

标签 统计

sha256 ×10

openssl ×3

cryptography ×2

hash ×2

hmac ×2

java ×2

php ×2

apache ×1

azure ×1

c# ×1

c++ ×1

ecdsa ×1

go ×1

guava ×1

hash-function ×1

hashlib ×1

macos ×1

md5 ×1

mysql ×1

node.js ×1

python ×1

signature ×1

unique-key ×1

x509 ×1

xml ×1