精华内容
下载资源
问答
  • java程序实现对密钥库的管理

    千次阅读 2015-03-14 13:38:50
    Java程序列出密钥库所有条目 2 Java程序修改密钥库口令 3 Java程序修改密钥库条目的口令及添加条目 4 Java程序检验别名及删除条目 5 Java程序从密钥库直接读取证书 6使用Java程序将已签名的数字证书导入密钥

    1 Java程序列出密钥库所有条目

    import java.util.*;
    import java.io.*;
    import java.security.*;
    public class ShowAlias{
        public static void main(String args[ ]) throws Exception{
            String pass="080302";
            String name=".keystore";
            FileInputStream in=new FileInputStream(name);
            KeyStore ks=KeyStore.getInstance("JKS");           
            ks.load(in,pass.toCharArray());
            Enumeratione=ks.aliases( );
            while( e.hasMoreElements()) {
                System.out.println(e.nextElement());
            }
        }
    }  

    2 Java程序修改密钥库口令

    import java.io.*;
    import java.security.*;
    public class SetStorePass{
        public static void main(String args[ ]) throws Exception{
            char[ ] oldpass="080302".toCharArray();
            char[ ] newpass="123456".toCharArray();
            String name=".keystore";
            FileInputStream in=new FileInputStream(name);
            KeyStore ks=KeyStore.getInstance("JKS");
            ks.load(in,oldpass);
            in.close();
            FileOutputStream output=new FileOutputStream(name);
            ks.store(output,newpass);
            output.close(); 
        }
    }  


     

    3 Java程序修改密钥库条目的口令及添加条目

    package test;
    
    import java.io.*;
    
    import java.security.*;
    
    import java.security.cert.Certificate;
    
    public class SetKeyPass{
    
       public static void main(String args[ ]) throws Exception{
    
            //读取相关参数
    
            String name=".keystore";
    
            String alias="mykey";
    
            char[ ] storepass="123456".toCharArray();
    
            char[ ] oldkeypass="080302".toCharArray();
    
            char[ ] newkeypass="123456".toCharArray();
    
            //获取密钥库.keystore的KeyStore对象,并加载密钥库
    
            FileInputStream in=new FileInputStream(name);
    
            KeyStore ks=KeyStore.getInstance("JKS");
    
            ks.load(in,storepass);
    
            //获取别名对应的条目的证书链
    
            Certificate[ ] cchain=ks.getCertificateChain(alias);
    
            //读取别名对应的条目的私钥
    
            PrivateKey pk=(PrivateKey)ks.getKey(alias,oldkeypass);
    
            //向密钥库中添加新的条目
    
            ks.setKeyEntry(alias,pk,newkeypass,cchain);
    
            in.close();
    
            //将KeyStore对象内容写入新文件
    
            FileOutputStream output=new FileOutputStream("333");
    
            ks.store(output,storepass);
    
            output.close(); 
    
        }
    
    }


     4 Java程序检验别名及删除条目

    package test;
    
    import java.io.*;
    
    import java.security.*;
    
    public class DeleteAlias{
    
        public static void main(String args[ ]) throws Exception{
    
            String pass = "123456";
    
            String name = ".keystore";
    
            String alias = "mykey";
    
            FileInputStream in=new FileInputStream(name);
    
            KeyStore ks=KeyStore.getInstance("JKS");           
    
            ks.load(in,pass.toCharArray());
    
            if (ks.containsAlias(alias)){
    
                ks.deleteEntry(alias);
    
                FileOutputStream output=new FileOutputStream(name);
    
                ks.store(output,pass.toCharArray());
    
                System.out.println("Alias "+alias+" deleted");
    
            }else{
    
                System.out.println("Alias not exist");
    
            }
    
        }
    
    }  

    5 Java程序从密钥库直接读取证书

    import java.io.*;
    
    import java.security.*;
    
    import java.security.cert.Certificate;
    
    public class PrintCert2{
    
        public static void main(String args[ ]) throws Exception{
    
              String pass="080302";
    
              String alias="mykey";
    
              String name=".keystore";
    
              FileInputStream in=new FileInputStream(name);
    
              KeyStore ks=KeyStore.getInstance("JKS");           
    
              ks.load(in,pass.toCharArray());
    
              Certificate c=ks.getCertificate(alias);
    
              in.close();
    
             System.out.println(c.toString( ));
    
        }
    
    }  
    

    6使用Java程序将已签名的数字证书导入密钥库

    首先读取CA的证书mytest.cer和用户收到的签名后的证书lf_signed.cer(由CA私钥签发),使用这两个证书组成证书链,然后从用户的密钥库读取私钥,最后执行KeyStore对象的setKeyEntry( )方法将私钥和证书一起写入密钥库,并使用store( )方法保存为文件即可。
    import java.io.*;
    
    import java.security.*;
    
    import java.security.cert.*;
    
    /*
    
     * CA证书,已经签名的用户数字证书,用户密钥库名和密码以及相应证书的私钥名称,新生成的证书名称和密钥库名以及密码
    
     */
    
    public class ImportCert{
    
        public static void main(String args[ ]) throws Exception{
    
            //参数
    
            String cacert="new.cer";
    
            String lfcert="hqy.cer";
    
            String lfstore="mykeystore";
    
            char[] lfstorepass="080302".toCharArray( );
    
            char[] lfkeypass="080302".toCharArray( );
    
            //CA的证书
    
            CertificateFactory cf=CertificateFactory.getInstance("X.509");
    
            FileInputStream in1=new FileInputStream(cacert);
    
            java.security.cert.Certificate cac=cf.generateCertificate(in1);
    
            in1.close();
    
            //用户的签名证书
    
            FileInputStream in2=new FileInputStream(lfcert);
    
            java.security.cert.Certificate lfc=cf.generateCertificate(in2);
    
            in2.close();
    
            //证书链
    
            java.security.cert.Certificate[] cchain={lfc,cac};
    
            //用户的密钥库
    
            FileInputStream in3=new FileInputStream(lfstore);
    
            KeyStore ks=KeyStore.getInstance("JKS");
    
            ks.load(in3,lfstorepass);
    
            PrivateKey prk=(PrivateKey)ks.getKey("new",lfkeypass);
    
            //导入证书
    
            ks.setKeyEntry("new_signed",prk,lfstorepass,cchain);
    
            //保存密钥库
    
            FileOutputStream out4=new FileOutputStream("nostore");
    
            ks.store(out4,"080302".toCharArray());
    
            out4.close(); 
    
    }
    
    }  

    展开全文
  • Java自带的工具keytool可以用来生成密钥证书,也可以查看或删除证书库里的证书。无论是windows还是Linux系统,这个工具都会出现在jdk安装目录的bin文件夹下 下图是在windows环境下,在bin目录下的所有文件: 2、...

    1、工具

    Java自带的工具keytool可以用来生成密钥证书,也可以查看或删除证书库里的证书。无论是windows还是Linux系统,这个工具都会出现在jdk安装目录的bin文件夹下

    下图是在windows环境下,在bin目录下的所有文件:

    2、概念

    keytool工具是基于“证书库”来对密钥进行管理的。“证书库”是一个后缀名为“.keystore”的文件。如下图:

    在密钥库中,每一条记录就是一份独立的证书,如果使用RSA算法,那这份证书里就会包含有私钥和公钥,如下图:

    keytool工具有很多命令,无论是在windows还是在linux中,你都可以在命令行中输入“keytool”来查看这个工具的用法概述:

    keytool的可用命令并不止上图那些,想了解更多可自行查找相关资料。

    3、创建证书,并保存入证书

    keytool -genkey -alias 你的证书别名 -keyalg 密钥算法 -keystore 证书库文件保存的位置和文件名 -keysize 密钥长度 -validity 证书有效期天数

    参数的含义

    -genkey:创建证书
    -alias:证书的别名。在一个证书库文件中,别名是唯一用来区分多个证书的标识符
    -keyalg:密钥的算法,非对称加密的话就是RSA
    -keystore:证书库文件保存的位置和文件名。如果路径写错的话,会出现报错信息。如果在路径下,证书库文件不存在,那么就会创建一个

    -keysize:密钥长度,一般都是1024

    -validity:证书的有效期,单位是天。比如36500的话,就是100年

    所以完整的一条创建命令可能是这样的:

    keytool -genkey -alias mykey -keyalg RSA -keystore C:/mykeystore.keystore -keysize 1024 -validity 36500

    然后,keytool会要求你输入证书库的密码,而且是连续输入两遍:

    注意这是“证书库”的密码,而不是你所要生成的证书的密码,这是两个不同的密码。

    网络上有些文章建议把证书库的密码与证书密码设置成一样的,其实并不建议这么做。

    之后,keytool会要求你输入自己的姓名、所在单位/公司/组织的名称、所在城市的名称、所在地区的名称、和2位的国家编码,照着它的引导步骤做就可以了。如果所有信息都输入正确的话,记得在最后输入y,并回车:

    最后,keytool会要求你输入证书的密码,也是连续输入两遍。

    来看一下完整的过程截图:

    完成后,你就会在自己所设定的目录下找到一个后缀名为“.keystore‘的文件,那个文件就是生成的证书库文件了。

    4、查看证书库中的证书

    可以使用以下命令来查看一份已存在的证书库中的所有证书

    keytool -list -keystore C:/mykeystore.keystore

    keytool会要求你输入证书库的密码,注意,是“证书库”的密码,也就是在上述第3步中,首次重复输入两次的那个密码。

    然后,keytool就会向你列出这个证书文件里的所有证书,每个证书都是单独的一条记录:

     

    5、导出公钥文件

    使用以下命令来从证书库里的某个证书中导出公钥,并保存成一份公钥文件:

    keytool -export -alias mykey -keystore C:/mykeystore.keystore -file C:/mypublickey.cer

    参数说明:

    -export:用于导出公钥文件的命令参数

    -alias:你的证书在证书库中的别名,也是唯一标识

    -keystore:完整的证书库文件所在的目录及文件名

    -file:导出后的公钥文件所在的完整目录及文件名

    keytool仍然会要求你输入证书库的密码,注意是”证书库“的密码

    特别需要注意的是,私钥是无法从证书库中导出的,因为那样非常不安全。如果你特别需要私钥或是私钥字符串,只能考虑用编程的方式从密钥库文件中去获取了。

    之后,你就会在自己所指定的那个目录下,找到一个cer文件。一般来说你都可以直接双击打开这个文件,其中能够看到你的证书信息以及公钥信息:

     

    至此,使用keytool工具生成证书、RSA密钥对和导出公钥的过程全部完成了。

     

    展开全文
  • 简介:腾讯云对象存储(Cloud Object Storage,COS)是腾讯云为企业和个人开发者们提供的一种能够存储海量数据的分布式存储服务,用户可随时通过互联网您的大量数据进行批量存储和处理。首先先创建1个存储桶然后...

    简介:腾讯云对象存储(Cloud Object Storage,COS)是腾讯云为企业和个人开发者们提供的一种能够存储海量数据的分布式存储服务,用户可随时通过互联网对您的大量数据进行批量存储和处理。

    首先先创建1个存储桶

    然后去云API密钥管理,新建1个密钥

    然后就可以通过这个密钥访问云资源了

    1.先引入腾讯云COS的依赖包

    <dependencies>
        <dependency>
            <groupId>com.qcloud</groupId>
            <artifactId>cos_api</artifactId>
            <version>5.2.4</version>
        </dependency>
    
        <dependency>
            <groupId>com.qcloud</groupId>
            <artifactId>qcloud-java-sdk</artifactId>
            <version>2.0.1</version>
        </dependency>
    </dependencies>

    2.以下代码可以对文件进行上传下载和删除操作

    package com.ljm.test;
    
    import com.qcloud.cos.COSClient;
    import com.qcloud.cos.ClientConfig;
    import com.qcloud.cos.auth.BasicCOSCredentials;
    import com.qcloud.cos.auth.COSCredentials;
    import com.qcloud.cos.model.GetObjectRequest;
    import com.qcloud.cos.model.PutObjectRequest;
    import com.qcloud.cos.region.Region;
    import com.qcloud.cos.transfer.Download;
    import com.qcloud.cos.transfer.TransferManager;
    import com.qcloud.cos.transfer.Upload;
    
    import java.io.File;
    import java.net.URL;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    /**
     * 高级sdk操作
     */
    public class CosDemo {
        static String bucketName = "bj-demo"; //桶的名称
        static String key = "/upload_demo.pdf";         //上传到云上路径
        static String region = "ap-beijing";//区域北京则  beijing
        static String appId = "1257072160"; //APPID
        static COSCredentials cred = null;
        static TransferManager transferManager = null;
        static COSClient cosClient = null;
    
        static {
            // 1 初始化用户身份信息(secretId, secretKey)
            //SecretId 是用于标识 API 调用者的身份
            String SecretId = "";
            //SecretKey是用于加密签名字符串和服务器端验证签名字符串的密钥
            String SecretKey = "";
            cred = new BasicCOSCredentials(SecretId, SecretKey);
    
            // 2 设置bucket的区域,
            ClientConfig clientConfig = new ClientConfig(new Region(region));
            // 3 生成cos客户端
            cosClient = new COSClient(cred, clientConfig);
            // 指定要上传到 COS 上的路径
            ExecutorService threadPool = Executors.newFixedThreadPool(32);
            // 传入一个 threadpool, 若不传入线程池, 默认 TransferManager 中会生成一个单线程的线程池。
            transferManager = new TransferManager(cosClient, threadPool);
        }
    
        public static void main(String[] args) {
            //上传
            upload();
            //下载
            //download();
            //删除
            //delete();
            cosClient.shutdown();
        }
    
        static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm ss");
    
        /**
         * 上传
         */
        public static void upload() {
            new Thread(new Runnable() {
                public void run() {
                    try {
                        System.out.println("上传开始时间:" + sdf.format(new Date()));
                        // .....(提交上传下载请求, 如下文所属)
                        // bucket 的命名规则为{name}-{appid} ,此处填写的存储桶名称必须为此格式
                        String bucket = bucketName + "-" + appId;
                        //本地文件路径
                        File localFile = new File("src/test/resources/test.pdf");
                        PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, key, localFile);
                        // 本地文件上传
                        Upload upload = transferManager.upload(putObjectRequest);
                        // 异步(如果想等待传输结束,则调用 waitForUploadResult)
                        //UploadResult uploadResult = upload.waitForUploadResult();
                        //同步的等待上传结束waitForCompletion
                        upload.waitForCompletion();
                        System.out.println("上传结束时间:" + sdf.format(new Date()));
                        System.out.println("上传成功");
                        //获取上传成功之后文件的下载地址
                        URL url = cosClient.generatePresignedUrl(bucketName + "-" + appId, key, new Date(new Date().getTime() + 5 * 60 * 10000));
                        System.out.println(url);
                    } catch (Throwable tb) {
                        System.out.println("上传失败");
                        tb.printStackTrace();
                    } finally {
                        // 关闭 TransferManger
                        transferManager.shutdownNow();
                    }
                }
            }).start();
    
        }
    
        /**
         * 下载
         */
        public static void download() {
            try {
                //下载到本地指定路径
                File localDownFile = new File("src/test/resources/download.pdf");
                GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName + "-" + appId, key);
                // 下载文件
                Download download = transferManager.download(getObjectRequest, localDownFile);
                // 等待传输结束(如果想同步的等待上传结束,则调用 waitForCompletion)
                download.waitForCompletion();
                System.out.println("下载成功");
            } catch (Throwable tb) {
                System.out.println("下载失败");
                tb.printStackTrace();
            } finally {
                // 关闭 TransferManger
                transferManager.shutdownNow();
            }
        }
    
        /**
         * 删除
         */
        public static void delete() {
            new Thread(new Runnable() {
                public void run() {
                    // 指定要删除的 bucket 和路径
                    try {
                        cosClient.deleteObject(bucketName + "-" + appId, key);
                        System.out.println("删除成功");
                    } catch (Throwable tb) {
                        System.out.println("删除文件失败");
                        tb.printStackTrace();
                    }
                }
            }).start();
        }
    }

    下面2个文件上要上传的文件,及重云上下载下来的文件

    这个是上传成功的效果,下面生成的链接是可以通过外网直接下载该文件的地址

     

    展开全文
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
  • JAVA_API1.6文档(中文)

    万次下载 热门讨论 2010-04-12 13:31:34
    java.security.interfaces 提供的接口用于生成 RSA Laboratory Technical Note PKCS#1 中定义的 RSA(Rivest、Shamir 和 Adleman AsymmetricCipher 算法)密钥,以及 NIST 的 FIPS-186 中定义的 DSA(数字签名算法)...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
  • Java ...密钥的生存时间到期后,该密钥将不再可用于读取或删除操作。 如果客户端以意外方式使用数据存储或违反任何限制,则必须始终将适当的错误响应返回给客户端。 数据存储区还将支持以下非功能性要
  • Java 1.6原始码FreshWorks_2021 ...密钥的生存时间到期后,该密钥将不再可用于读取或删除操作。 7.如果客户端以意外方式使用数据存储或违反任何限制,则必须始终将适当的错误响应返回给客户端。 数据存储
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
  • java源码包4

    千次下载 热门讨论 2013-04-20 11:31:44
     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
  • Java 源码包 Applet钢琴模拟程序java... Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateK
  • JAVA操作证书

    2019-01-21 23:02:00
    Java自带的工具keytool可以用来生成密钥证书,也可以查看或删除证书库里的证书。无论是windows还是Linux系统,这个工具都会出现在jdk安装目录的bin文件夹下。 keytool工具是基于“证书库”来对密钥进行管理的。...

    一、生成证书工具keytool

       Java自带的工具keytool可以用来生成密钥证书,也可以查看或删除证书库里的证书。无论是windows还是Linux系统,这个工具都会出现在jdk安装目录的bin文件夹下。

       keytool工具是基于“证书库”来对密钥进行管理的。“证书库”是一个后缀名为“.keystore”的文件

      在密钥库中,每一条记录就是一份独立的证书,如果使用RSA算法,那这份证书里就会包含有私钥和公钥

      keytool工具有很多命令,无论是在windows还是在linux中,你都可以在命令行中输入“keytool”来查看这个工具的用法概述:

    二、生成证书

    keytool -genkey -alias 你的证书别名 -keyalg 密钥算法 -keystore 证书库文件保存的位置和文件名 -keysize 密钥长度 -validity 证书有效期天数

    2.1 解释一下几个参数的含义
       -genkey:创建证书
       -alias:证书的别名。在一个证书库文件中,别名是唯一用来区分多个证书的标识符
       -keyalg:密钥的算法,非对称加密的话就是RSA
       -keystore:证书库文件保存的位置和文件名。如果路径写错的话,会出现报错信息。如果在路径下,证书库文件不存在,那么就会创建一个
       -keysize:密钥长度,一般都是1024
       -validity:证书的有效期,单位是天。比如36500的话,就是100年
    所以完整的一条创建命令可能是这样的:

    keytool -genkey -alias xiaoyaodijun.keystore -keyalg RSA -keystore  xiaoyaodijun.keystore  -keysize 1024 -validity 36500

    然后,keytool会要求你输入证书库的密码,而且是连续输入两遍。注意 这是“证书库”的密码,而不是你所要生成的证书的密码,这是两个不同的密码

    之后,keytool会要求你输入自己的姓名、所在单位/公司/组织的名称、所在城市的名称、所在地区的名称、和2位的国家编码,照着它的引导步骤做就可以了。如果所有信息都2.2 输入正确的话,记得在最后输入y,并回车
     

    最后,keytool会要求你输入证书的密码,也是连续输入两遍

    2.3 查看证书

    可以使用以下命令来查看一份已存在的证书库中的所有证书

    keytool -list -keystore  xiaoyaodijun.keystore

    三、到处证书文件

    keytool -export -alias xiaoyaodijun.keystore -keystore xiaoyaodijun.keystore -file mypublickey.cer
    解释一下:
    -export:用于导出公钥文件的命令参数
    -alias:你的证书在证书库中的别名,也是唯一标识
    -keystore:完整的证书库文件所在的目录及文件名
    -file:导出后的公钥文件所在的完整目录及文件名

     

    转载于:https://www.cnblogs.com/xiaoyaodijun/p/10301471.html

    展开全文
  • Java中的WeakHashMap

    2020-06-13 19:49:24
    Java中的WeakHashMap是中... 当关联密钥丢失其所有活动的强引用和软引用时, WeakHashMap中的条目将自动删除。 在本文中,我们将首先讨论Java中的引用类型-软引用,弱引用和强引用。 然后,我们将了解WeakHashMap ...
  • java api最新7.0

    千次下载 热门讨论 2013-10-26 17:34:06
    java.security.interfaces 提供的接口用于生成 RSA Laboratory Technical Note PKCS#1 中定义的 RSA(Rivest、Shamir 和 Adleman AsymmetricCipher 算法)密钥,以及 NIST 的 FIPS-186 中定义的 DSA(数字签名算法)...
  • java开源包1

    千次下载 热门讨论 2013-06-28 09:14:34
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
  • java开源包12

    热门讨论 2013-06-28 10:14:45
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
  • Java资源包01

    2016-08-31 09:16:25
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
  • java开源包101

    2016-07-13 10:11:08
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
  • java开源包11

    热门讨论 2013-06-28 10:10:38
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
  • java开源包2

    热门讨论 2013-06-28 09:17:39
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
  • java开源包3

    热门讨论 2013-06-28 09:20:52
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
  • java开源包6

    热门讨论 2013-06-28 09:48:32
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
  • java开源包5

    热门讨论 2013-06-28 09:38:46
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
  • java开源包10

    热门讨论 2013-06-28 10:06:40
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
  • java开源包4

    热门讨论 2013-06-28 09:26:54
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
  • java开源包8

    热门讨论 2013-06-28 09:55:26
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
  • java开源包9

    热门讨论 2013-06-28 09:58:55
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...
  • java开源包7

    热门讨论 2013-06-28 09:52:16
    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

空空如也

空空如也

1 2 3 4 5 6
收藏数 111
精华内容 44
关键字:

java删除密钥对

java 订阅