首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

True-License的演练用例

2012-09-17 
True-License的演示用例keytool生成密钥库的方法就不说了。网上很多,也可详见 java核心技术第二卷简单的t

True-License的演示用例

keytool生成密钥库的方法就不说了。网上很多,也可详见 <java核心技术第二卷>

简单的trueLicense用例,仅供参考.

true-license的源码,已经添加了中文注释,喜欢的朋友可以拿去看看。

truelicense源码



import java.io.File;import java.util.Date;import java.util.prefs.Preferences;import javax.security.auth.x500.X500Principal;import de.schlichtherle.license.CipherParam;import de.schlichtherle.license.DefaultCipherParam;import de.schlichtherle.license.DefaultKeyStoreParam;import de.schlichtherle.license.DefaultLicenseParam;import de.schlichtherle.license.KeyStoreParam;import de.schlichtherle.license.LicenseContent;import de.schlichtherle.license.LicenseParam;import de.schlichtherle.license.LicenseManager;public class TestTrueLicense {public final static String PRIVATEALIAS = "privatekey";public final static String PUBLICALIAS = "publiccert";public final static String KEYPWD = "111aaa";public final static String STOREPWD = "111aaa";public final static String SUBJECT = "trueLicense测试";//为了方便直接用的API里的例子//X500Princal是一个证书文件的固有格式,详见APIpublic final static X500Principal DEFAULTHOLDERANDISSUER = new X500Principal("CN=Duke、OU=JavaSoft、O=Sun Microsystems、C=US");    public static void main(String[] args) throws Exception {    /**************证书发布者端执行******************/    LicenseManager licenseManager =     LicenseManagerHolder.getLicenseManager(initLicenseParams0());    String storePath = TestTrueLicense.class.getResource(".").getFile() + File.separator + "测试.lic";    licenseManager.store((createLicenseContent()), new File(storePath));    System.out.println("服务器端生成证书成功!");    /**************证书使用者端执行******************/    //由于用的是一个licenseManager所以重新设置验证时需要的LicenseParam    licenseManager.setLicenseParam(initLicenseParams1());    //安装证书    licenseManager.install(new File(storePath));    System.out.println("客户端安装证书成功!");    //验证证书    licenseManager.verify();    System.out.println("客户端验证证书成功!");    }         //返回生成证书时需要的参数    private static LicenseParam initLicenseParams0() {    Preferences preference = Preferences.userNodeForPackage(TestTrueLicense.class);        //设置对证书内容加密的对称密码    CipherParam cipherParam = new DefaultCipherParam("111aaa");        //参数1,2从哪个Class.getResource()获得密钥库    //参数3密钥库的别名    //参数4密钥库存储密码    //参数5密钥库密码        KeyStoreParam privateStoreParam  =             new DefaultKeyStoreParam(TestTrueLicense.class, "privateKeys.store", PRIVATEALIAS, STOREPWD, KEYPWD);        LicenseParam licenseParams =        new DefaultLicenseParam(SUBJECT, preference, privateStoreParam, cipherParam);        return licenseParams;    }        //返回验证证书需要的参数    private static LicenseParam initLicenseParams1() {    Preferences preference = Preferences.userNodeForPackage(TestTrueLicense.class);        CipherParam cipherParam = new DefaultCipherParam("111aaa");                KeyStoreParam privateStoreParam  =             new DefaultKeyStoreParam(TestTrueLicense.class, "publicCerts.store", PUBLICALIAS, STOREPWD, null);        LicenseParam licenseParams =        new DefaultLicenseParam(SUBJECT, preference, privateStoreParam, cipherParam);        return licenseParams;    }    //一般可以从外部表单拿到证书的内容    //这里为了演示,把证书内容写死了    public final static LicenseContent createLicenseContent() {    LicenseContent content = null;    content = new LicenseContent();    content.setSubject(SUBJECT);    content.setHolder(DEFAULTHOLDERANDISSUER);    content.setIssuer(DEFAULTHOLDERANDISSUER);    content.setIssued(new Date());    content.setNotBefore(new Date());    content.setNotAfter(new Date(new Date().getTime() + 1000));    content.setConsumerType("user");    content.setConsumerAmount(1);    content.setInfo("随便不为空的描述性信息");    //扩展    content.setExtra(new Object());    return content;    }}


热点排行