小编use*_*561的帖子

PHP和Java中的SHA256

我正在将一些Java代码移植到PHP代码中.在Java中,我有一个哈希SHA256代码,如下所示:

public static String hashSHA256(String input)
        throws NoSuchAlgorithmException {
    MessageDigest mDigest = MessageDigest.getInstance("SHA-256");

byte[] shaByteArr = mDigest.digest(input.getBytes(Charset.forName("UTF-8")));
    StringBuilder hexStrBuilder = new StringBuilder();
    for (int i = 0; i < shaByteArr.length; i++) {
        hexStrBuilder.append(Integer.toHexString(0xFF & shaByteArr[i]));
    }

    return hexStrBuilder.toString();
}
Run Code Online (Sandbox Code Playgroud)

在PHP中,我哈希如下:

$hash = hash("sha256", utf8_encode($input));
Run Code Online (Sandbox Code Playgroud)

我用input ="test"运行示例代码.但是,我得到了2个不同的哈希字符串:

Java: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2bb822cd15d6c15b0f0a8
PHP: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释为什么以及如何让它们相互匹配?请注意,我无法修改Java实现代码,只能修改PHP.

万分感激!

php java hash sha256

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

Laravel Guzzle:curl错误77错误设置证书验证位置

  • 操作系统:Ubuntu 16.04
  • PHP的:7.2
  • CURL:curl 7.47.0(x86_64-pc-linux-gnu)libcurl / 7.47.0 GnuTLS / 3.4.10 zlib / 1.2.8 libidn / 1.32 librtmp / 2.3
  • 食口:6.3

我的项目目前正在使用一些依赖于Guzzle的软件包,例如:AWS,Mailgun ...但是,它经常抛出以下错误:

error: cURL error 77: error setting certificate verify locations:
CAfile: /etc/ssl/certs
CApath: /etc/ssl/certs (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
Run Code Online (Sandbox Code Playgroud)

以下是我的php.ini的一部分

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo='/etc/ssl/certs/ca-certificates.crt'

[openssl]
; The location of a Certificate Authority (CA) file on the local     filesystem
; to use when verifying the identity of SSL/TLS …
Run Code Online (Sandbox Code Playgroud)

ssl curl openssl laravel guzzle

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

标签 统计

curl ×1

guzzle ×1

hash ×1

java ×1

laravel ×1

openssl ×1

php ×1

sha256 ×1

ssl ×1