位于FTP服务器上的文件上的Java校验和md5

位于FTP服务器上的文件上的Java校验和md5,java,file,ftp,md5,Java,File,Ftp,Md5,我有一个程序需要比较本地磁盘上的文件和FTP服务器上的文件。 我决定使用md5校验和。我可以用本地文件来做,但是ftp文件有问题。此外,我正在使用ApacheFTPClientCommon MessageDigest digest = MessageDigest.getInstance("MD5"); FileInputStream is = new FileInputStream(FTP_listFiles[i]); //ERROR HERE

我有一个程序需要比较本地磁盘上的文件和FTP服务器上的文件。 我决定使用md5校验和。我可以用本地文件来做,但是ftp文件有问题。此外,我正在使用ApacheFTPClientCommon

MessageDigest digest = MessageDigest.getInstance("MD5");

        FileInputStream is = new FileInputStream(FTP_listFiles[i]); //ERROR HERE   
                                                                    //FTP_files is a FTPFile from FTPClient apache commons.
        byte[] buffer = new byte[8192];
        int read = 0;
        try {
            while( (read = is.read(buffer)) > 0) {
                digest.update(buffer, 0, read);
            }
            byte[] md5sum = digest.digest();
            BigInteger bigInt = new BigInteger(1, md5sum);
            String output = bigInt.toString(16);
            System.out.println("MD5: \n" + output);
        }
        catch(IOException e) {
            throw new RuntimeException("Unable to process file for MD5", e);
        } finally {
            try {
                is.close();
            }
            catch(IOException e) {
                throw new RuntimeException("Unable to close input stream for MD5 calculation", e);
            }
        }

注意:如果不可能,您知道md5的任何等价物,但可以做到相同吗?

您想要实现什么?是否知道要在本地计算md5,需要下载完整文件

有一个特殊的ftp扩展,为客户端提供服务器端md5,但通常不支持。一些服务器还实现了一些类似的专有功能;您必须检查您的特定服务器


例如,您可能想看看XCRC、XMD5或XSHA1命令。

您想要实现什么?您是否知道要在本地计算md5,您需要下载完整文件?您遇到了什么问题?使用什么代码?那么,除了使用md5,您还有其他解决方案吗?但这与使用md5大致相同?没有。对于任何代码,您的用户必须支持一个校验和命令,请参阅我的更新答案。