在一台虚拟机用java连接远程虚拟机登录远程虚拟机进入对应的的目录下,把当前目录下的一个文件get到 本地虚拟机的一个路径下然后把这个文件MD5一下,把MD5的值返回

你可以使用 JSch 库来实现在一台虚拟机上通过 Java 连接到远程虚拟机,将文件下载到本地虚拟机,计算其 MD5 值,然后返回。以下是一个简单的示例:

import com.jcraft.jsch.*;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.security.MessageDigest;

public class RemoteFileDownloadAndCalculateMD5 {

    public static void main(String[] args) {
        String remoteHost = "your-remote-host";
        String remoteUser = "your-username";
        String remoteFilePath = "/path/to/remote-file";
        String localFilePath = "/path/to/local-file";

        try {
            JSch jsch = new JSch();

            // 创建会话
            Session session = jsch.getSession(remoteUser, remoteHost);
            session.setConfig("StrictHostKeyChecking", "no");
            session.connect();

            // 创建SFTP通道
            ChannelSftp channel = (ChannelSftp) session.openChannel("sftp");
            channel.connect();

            // 下载远程文件到本地
            channel.get(remoteFilePath, localFilePath);

            // 计算本地文件的MD5值
            String md5 = calculateFileMD5(localFilePath);
            System.out.println("MD5: " + md5);

            // 关闭SFTP通道和会话
            channel.disconnect();
            session.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static String calculateFileMD5(String filePath) throws Exception {
        MessageDigest md = MessageDigest.getInstance("MD5");
        FileInputStream fis = new FileInputStream(new File(filePath));
        byte[] buffer = new byte[1024];
        int n;
        while ((n = fis.read(buffer)) != -1) {
            md.update(buffer, 0, n);
        }
        fis.close();
        byte[] md5Bytes = md.digest();
        StringBuilder sb = new StringBuilder();
        for (byte md5Byte : md5Bytes) {
            sb.append(Integer.toString((md5Byte & 0xff) + 0x100, 16).substring(1));
        }
        return sb.toString();
    }
}

在这个示例中,我们连接到远程虚拟机,使用 SFTP 下载远程文件到本地,并计算文件的 MD5 值。确保替换示例中的主机名、用户名、远程文件路径和本地文件路径为你的实际值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值