Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
相当于Java MessageDigest的Shell脚本_Java_Shell_Cryptography_Openssl_Sha1 - Fatal编程技术网

相当于Java MessageDigest的Shell脚本

相当于Java MessageDigest的Shell脚本,java,shell,cryptography,openssl,sha1,Java,Shell,Cryptography,Openssl,Sha1,如何仅使用shell脚本运行以下Java功能?openssl不应该这样做吗?由于某些原因,值不相同 外壳: $ cat test.txt test $ openssl sha1 test.txt SHA1(test.txt)= fde773a18bb29f5ed65e6f0a7aa717fd1fa485d4 Java代码(播放框架源代码): fde773a18bb29f5ed65e6f0a7aa717fd1fa485d4!=a94a8fe5ccb19ba61c4c0873d391e98798

如何仅使用shell脚本运行以下Java功能?openssl不应该这样做吗?由于某些原因,值不相同

外壳:

$ cat test.txt 
test
$ openssl sha1 test.txt
SHA1(test.txt)= fde773a18bb29f5ed65e6f0a7aa717fd1fa485d4
Java代码(播放框架源代码):


fde773a18bb29f5ed65e6f0a7aa717fd1fa485d4!=a94a8fe5ccb19ba61c4c0873d391e987982fbbd3的值与第一种情况下为
test.txt计算SHA1的值不同,下一种情况下为
test
字符串计算相同的值

如果要从java应用程序内部调用
openssl
,请使用以下代码片段:


Runtime.getRuntime().exec('openssl','sha1','test.txt')

test.txt的末尾有回车符和换行符。这些显然不在Java字符串中

$ echo -n test > test.txt
$ openssl sha1 test.txt
SHA1(test.txt)= a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

$ echo -ne 'test\r\n' > test2.txt
$ openssl sha1 test2.txt
SHA1(test2.txt)= fde773a18bb29f5ed65e6f0a7aa717fd1fa485d4

下次,只需将
test.txt
的二进制数据读入Java,看看摘要是否匹配。如果是,请检查摘要的二进制输入是否与文件中的二进制输入匹配。要了解如何读取二进制文件,请使用以下Q:(查看Java7方式,应该是一行程序)。
$ echo -n test > test.txt
$ openssl sha1 test.txt
SHA1(test.txt)= a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

$ echo -ne 'test\r\n' > test2.txt
$ openssl sha1 test2.txt
SHA1(test2.txt)= fde773a18bb29f5ed65e6f0a7aa717fd1fa485d4