最近有遇到一个问题就是接口放提供的接口密文为PHP的sha256sum加密的内容
在网上找了半天没找到java相应的加密方式
最后迫不得已使用程序执行linux命令来加密
echo -n '123456bzGI9IZAaheT8LtAvhlYNnpDgwuy4hvw' | sha256sum | xxd -r -p | base64 -w0
java程序为:
public static String getSHA256Value(String password){
String result = "";
InputStream in = null;
try {
//Linux
Process pro = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c","echo -n '" + password + "' | sha256sum | xxd -r -p | base64 -w0"});
pro.waitFor();
in = pro.getInputStream();
BufferedReader read = new BufferedReader(new InputStreamReader(in));
result = read.readLine();
if(StringUtil.isEmpty(result)){
//Mac
pro = Runtime.getRuntime().exec(new String[]{"/bin/bash","-c","echo -n '" + password + "' | shasum -a 256 | xxd -r -p | base64 -b0"});
pro.waitFor();
in = pro.getInputStream();
read = new BufferedReader(new InputStreamReader(in));
result = read.readLine();
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
由于mac和linux有些不一样,所以执行的命令也稍微修改了下,如上
分享到:
相关推荐
java加密运行支持【spring+struts+mybatis+hibernate+mysql+oracle+sqlserver+postgresql+springMVC+springboot】 支持的项目:JavaWeb项目、Tomcat项目、SpringBoot项目、单独的Jar包项目、几乎所有的Java项目都...
10. **可移植性**:由于基于JAVA,这个程序可以在任何安装了JAVA环境的平台上运行,包括Windows、Linux和Mac OS等。 总之,这个基于JAVA的文件加密解密程序结合了基本的加密技术与用户友好的GUI设计,提供了一个...
Java作为一种跨平台的编程语言,使得这类加密软件能够在多种操作系统上运行,如Windows、Mac OS和Linux等。 在Java中实现加密,通常会涉及到以下几个核心概念和技术: 1. **对称加密**:这是最基础的加密方法,如...
【JAVA】是广泛使用的跨平台编程语言,其“一次编写,到处运行”的特性使得基于JAVA的IDS加密器可以在任何支持JAVA虚拟机(JVM)的系统上运行,包括Windows、Linux、Mac OS等操作系统。 【DES】(Data Encryption ...
5. 多平台兼容:由于Java的跨平台特性,该工具应该能在Windows、Mac OS和Linux等操作系统上运行。 在使用"文件加密V1.3"这个版本之前,务必阅读提供的说明书,了解如何使用该工具、加密和解密的流程,以及如何妥善...
本文将探讨如何通过"MacBindingTool"实现程序启动时的MAC地址绑定以及RSA加密技术在其中的应用。这个工具旨在确保程序只能在特定硬件环境下运行,增强软件的安全性和防止非法复制。 首先,我们要理解MAC地址绑定的...
Jar文件不仅可以方便地分发和运行Java应用程序,还可以进行代码压缩、加密和签名,以增强软件的安全性。下面我们将详细探讨如何使用Java命令行工具来生成Jar文件。 首先,确保你已经安装了Java Development Kit ...
Java是一种广泛使用的编程语言,具有跨平台的特性,因此这个加密GUI程序可以在多种操作系统上运行,如Windows、Mac OS或Linux。GUI库提供了丰富的组件,如按钮、文本框、菜单等,用于创建直观、友好的用户界面。 在...
3. 运行JavaBridge:在JavaBridge.jar所在的目录下执行以下命令之一,来启动JavaBridge服务。如果是后台运行,可以添加`&`符号使进程在后台运行,并可以附带日志等级(如`3JavaBrifge.log&`)。 4. 检查服务启动...
Java的跨平台特性使得Java程序可以在任何支持Java虚拟机的操作系统上运行,包括Windows、Linux、Mac OS等。这使得Java程序的开发和部署变得更加灵活和方便。 Java程序的编写需要遵循面向对象的编程思想,即将程序...
在Windows系统中,PC/SC服务已经集成,而在其他操作系统如Linux和Mac OS X中,可能需要额外安装相应的库。 3. **iC卡读写器程序**: iC卡读写器是连接IC卡与计算机的硬件设备,它提供了物理接触点与卡片通信,同时...
JCo3.0支持多种操作系统平台,包括Windows(32位和64位)、Mac OS(64位)以及Linux(64位),确保了跨平台的兼容性和灵活性。 JCo3.0的核心功能是通过Remote Function Module (RFM)调用来访问SAP ABAP系统。RFMs是...
由于Java的跨平台特性,VNC Java客户端可以在任何安装了Java运行环境的设备上运行,无论是Windows、Mac还是Linux。Java客户端通过实现VNC协议,与VNC服务端建立连接,实现远程桌面的显示和操作。Java客户端可能包含...
由于Java的跨平台特性,这种浏览器理论上可以在任何支持Java虚拟机(JVM)的设备上运行,这包括Windows、Mac OS X、Linux等操作系统。 首先,我们要理解Java在浏览器开发中的核心角色。Java可以用来实现浏览器的...
Java的跨平台特性使得Java程序可以在任何支持Java虚拟机的操作系统上运行,包括Windows、Linux、Mac OS等。这使得Java程序的开发和部署变得更加灵活和方便。 Java程序的编写需要遵循面向对象的编程思想,即将程序...
Java FeiQ是一款基于Java开发的局域网通信软件,其设计目的是为了实现类似飞秋、飞鸽这样的即时通讯功能,同时支持Windows和Linux操作系统。这个软件的核心特性包括局域网内的聊天、文件共享以及执行远程命令,为...
这个加密软件的实现是使用JAVA编程语言编写的,使得它可以在多种平台上运行,包括但不限于Windows、Linux和Mac OS。下面将详细介绍Misty1算法以及在JAVA中的实现。 1. **Misty1算法概述** Misty1算法是一种迭代型...
3. **跨平台支持**:兼容Windows、Mac和Linux,这意味着软件采用了跨平台的开发技术,如Java、Python或Electron等,确保不同操作系统用户都能使用。 4. **用户友好**:通过悬浮窗口的方式,减少了用户频繁切换应用...