精华内容
下载资源
问答
  • 3.4 安全产品License激活手册 4 无线产品 4.1 License注册 4.2 License规格查询 4.3 License问题排查维护 5 云及软件产品 5.1 云学堂、云桌面 5.2 CAS License快答 5.3 IMC License迁移 5.4 IMC License注册 5.5 IMC...
  • HUAWEI 企业网安全网关产品License申请指导书
  • License授权和验证的原理: 1、 首先需要生成密钥对,方法有很多,JDK中提供的KeyTool即可生成。 2、 授权者保留私钥,使用私钥对包含授权信息(如截止日期,MAC地址等)的license进行数字签名。 3、 公钥交给...

    License授权和验证的原理:

    1、  首先需要生成密钥对,方法有很多,JDK中提供的KeyTool即可生成。

    2、  授权者保留私钥,使用私钥对包含授权信息(如截止日期,MAC地址等)的license进行数字签名。

    3、  公钥交给使用者(放在验证的代码中使用),用于验证license是否符合使用条件。

     

    实现步骤(代码参考前贤网上案例实现,不再赘写):

    一、使用KeyTool生成密钥对

    转到CMD命令行,切换到%JAVA_HOME%\jre\bin\security\ 目录(KeyTool工具一般在此目录),执行命令生成的密钥对:

    1、首先利用KeyTool工具来生成私匙库:(-alias别名 –validity 3650表示10年有效)

    keytool -genkey -alias privatekey -keystore privateKeys.store -validity 3650

    2、然后把私匙库内的公匙导出到一个文件当中:

    keytool -export -alias privatekey -file certfile.cer -keystore privateKeys.store

     2、然后把这个证书导入公钥库

    keytool -import -alias publiccert -file certfile.cer -keystore publicCerts.store

    最后生成文件privateKeys.store、publicCerts.store拷贝出来备用。

     

    二、生成证书(该部分代码由授权者独立保管执行)

    1、  首先是 LicenseManagerHolder.java 类

     

    package cn.melina.license;
    import de.schlichtherle.license.LicenseManager;
    import de.schlichtherle.license.LicenseParam;
     
    /**
     * LicenseManagerHolder 
     * @author melina
     */
    public class LicenseManagerHolder {
        
        private static LicenseManager licenseManager;
     
        public static synchronized LicenseManager getLicenseManager(LicenseParam licenseParams) {
            if (licenseManager == null) {
                licenseManager = new LicenseManager(licenseParams);
            }
            return licenseManager;
        }
    }

     

    2、  然后是主要生成 license 的代码 CreateLicense.java

     

    package cn.melina.license;
     
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Properties;
    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;
     
    /**
     * CreateLicense
     * @author melina
     */
    public class CreateLicense {
        //common param
        private static String PRIVATEALIAS = "";
        private static String KEYPWD = "";
        private static String STOREPWD = "";
        private static String SUBJECT = "";
        private static String licPath = "";
        private static String priPath = "";
        //license content
        private static String issuedTime = "";
        private static String notBefore = "";
        private static String notAfter = "";
        private static String consumerType = "";
        private static int consumerAmount = 0;
        private static String info = "";
        // 为了方便直接用的API里的例子
        // X500Princal是一个证书文件的固有格式,详见API
        private final static X500Principal DEFAULTHOLDERANDISSUER = new X500Principal(
                "CN=Duke、OU=JavaSoft、O=Sun Microsystems、C=US");
        
        public void setParam(String propertiesPath) {
            // 获取参数
            Properties prop = new Properties();
            InputStream in = getClass().getResourceAsStream(propertiesPath);
            try {
                prop.load(in);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            PRIVATEALIAS = prop.getProperty("PRIVATEALIAS");
            KEYPWD = prop.getProperty("KEYPWD");
            STOREPWD = prop.getProperty("STOREPWD");
            SUBJECT = prop.getProperty("SUBJECT");
            KEYPWD = prop.getProperty("KEYPWD");
            licPath = prop.getProperty("licPath");
            priPath = prop.getProperty("priPath");
            //license content
            issuedTime = prop.getProperty("issuedTime");
            notBefore = prop.getProperty("notBefore");
            notAfter = prop.getProperty("notAfter");
            consumerType = prop.getProperty("consumerType");
            consumerAmount = Integer.valueOf(prop.getProperty("consumerAmount"));
            info = prop.getProperty("info");
            
        }
     
        public boolean create() {        
            try {
                /************** 证书发布者端执行 ******************/
                LicenseManager licenseManager = LicenseManagerHolder
                        .getLicenseManager(initLicenseParams0());
                licenseManager.store((createLicenseContent()), new File(licPath));    
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println("客户端证书生成失败!");
                return false;
            }
            System.out.println("服务器端生成证书成功!");
            return true;
        }
     
        // 返回生成证书时需要的参数
        private static LicenseParam initLicenseParams0() {
            Preferences preference = Preferences
                    .userNodeForPackage(CreateLicense.class);
            // 设置对证书内容加密的对称密码
            CipherParam cipherParam = new DefaultCipherParam(STOREPWD);
            // 参数1,2从哪个Class.getResource()获得密钥库;参数3密钥库的别名;参数4密钥库存储密码;参数5密钥库密码
            KeyStoreParam privateStoreParam = new DefaultKeyStoreParam(
                    CreateLicense.class, priPath, PRIVATEALIAS, STOREPWD, KEYPWD);
            LicenseParam licenseParams = new DefaultLicenseParam(SUBJECT,
                    preference, privateStoreParam, cipherParam);
            return licenseParams;
        }
     
        // 从外部表单拿到证书的内容
            public final static LicenseContent createLicenseContent() {
                DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                LicenseContent content = null;
                content = new LicenseContent();
                content.setSubject(SUBJECT);
                content.setHolder(DEFAULTHOLDERANDISSUER);
                content.setIssuer(DEFAULTHOLDERANDISSUER);
                try {
                    content.setIssued(format.parse(issuedTime));
                    content.setNotBefore(format.parse(notBefore));
                    content.setNotAfter(format.parse(notAfter));
                } catch (ParseException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                content.setConsumerType(consumerType);
                content.setConsumerAmount(consumerAmount);
                content.setInfo(info);
                // 扩展
                content.setExtra(new Object());
                return content;
            }
    }

     

    3、  测试程序 licenseCreateTest.java

     

    package cn.melina.license;
    import cn.melina.license.CreateLicense;
    public class licenseCreateTest {
        public static void main(String[] args){
            CreateLicense cLicense = new CreateLicense();
            //获取参数
            cLicense.setParam("./param.properties");
            //生成证书
            cLicense.create();
        }
    }

     

    4、  生成时使用到的 param.properties 文件如下

     

    ##########common parameters###########
    #alias
    PRIVATEALIAS=privatekey
    #key(该密码生成密钥对的密码,需要妥善保管,不能让使用者知道)
    KEYPWD=bigdata123456
    #STOREPWD(该密码是在使用keytool生成密钥对时设置的密钥库的访问密码)
    STOREPWD=abc123456
    #SUBJECT
    SUBJECT=bigdata
    #licPath
    licPath=bigdata.lic
    #priPath
    priPath=privateKeys.store
    ##########license content###########
    #issuedTime
    issuedTime=2014-04-01
    #notBeforeTime
    notBefore=2014-04-01
    #notAfterTime
    notAfter=2014-05-01
    #consumerType
    consumerType=user
    #ConsumerAmount
    consumerAmount=1
    #info
    info=this is a license

     

    根据properties文件可以看出,这里只简单设置了使用时间的限制,当然可以自定义添加更多限制。该文件中表示授权者拥有私钥,并且知道生成密钥对的密码。并且设置license的内容。

     

    三、验证证书(使用证书)(该部分代码结合需要授权的程序一起使用)

     

    1、  首先 LicenseManagerHolder.java 类,同上。

     

    2、  然后是主要验证 license 的代码 VerifyLicense.java

     

    package cn.melina.license;
     
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    import java.util.prefs.Preferences;
     
    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.LicenseParam;
    import de.schlichtherle.license.LicenseManager;
     
    /**
     * VerifyLicense
     * @author melina
     */
    public class VerifyLicense {
        //common param
        private static String PUBLICALIAS = "";
        private static String STOREPWD = "";
        private static String SUBJECT = "";
        private static String licPath = "";
        private static String pubPath = "";
        
        public void setParam(String propertiesPath) {
            // 获取参数
            Properties prop = new Properties();
            InputStream in = getClass().getResourceAsStream(propertiesPath);
            try {
                prop.load(in);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            PUBLICALIAS = prop.getProperty("PUBLICALIAS");
            STOREPWD = prop.getProperty("STOREPWD");
            SUBJECT = prop.getProperty("SUBJECT");
            licPath = prop.getProperty("licPath");
            pubPath = prop.getProperty("pubPath");
        }
     
        public boolean verify() {        
            /************** 证书使用者端执行 ******************/
     
            LicenseManager licenseManager = LicenseManagerHolder
                    .getLicenseManager(initLicenseParams());
            // 安装证书
            try {
                licenseManager.install(new File(licPath));
                System.out.println("客户端安装证书成功!");
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println("客户端证书安装失败!");
                return false;
            }
            // 验证证书
            try {
                licenseManager.verify();
                System.out.println("客户端验证证书成功!");
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println("客户端证书验证失效!");
                return false;
            }
            return true;
        }
     
        // 返回验证证书需要的参数
        private static LicenseParam initLicenseParams() {
            Preferences preference = Preferences
                    .userNodeForPackage(VerifyLicense.class);
            CipherParam cipherParam = new DefaultCipherParam(STOREPWD);
     
            KeyStoreParam privateStoreParam = new DefaultKeyStoreParam(
                    VerifyLicense.class, pubPath, PUBLICALIAS, STOREPWD, null);
            LicenseParam licenseParams = new DefaultLicenseParam(SUBJECT,
                    preference, privateStoreParam, cipherParam);
            return licenseParams;
        }
    }

     

    3、  验证测试程序 licenseVerifyTest.java

     

    package cn.melina.license;
     
    public class licenseVerifyTest {
        public static void main(String[] args){
            VerifyLicense vLicense = new VerifyLicense();
            //获取参数
            vLicense.setParam("./param.properties");
            //验证证书
            vLicense.verify();
        }
    }

     

    4、  验证时使用到的Properties文件

     

    ##########common parameters###########
    #alias
    PUBLICALIAS=publiccert
    #STOREPWD(该密码是在使用keytool生成密钥对时设置的密钥库的访问密码)
    STOREPWD=abc123456
    #SUBJECT
    SUBJECT=bigdata
    #licPath
    licPath=bigdata.lic
    #pubPath
    pubPath=publicCerts.store

     

    根据该验证的properties可以看出,使用者只拥有公钥,没有私钥,并且也只知道访问密钥库的密码,而不能知道生成密钥对的密码。

    转发:https://www.cnblogs.com/xifengxiaoma/p/9377654.html#top

    展开全文
  • From: 00:00 感谢您购买风河产品。我们致力于让您满意。该视频将引导您完成激活产品的过程。许多Wind River产品都经过许可管理。这意味着您的组织购买了一个许可证,允许您的开发人员同时运行风河产品的一定数量的...

    https://knowledge.windriver.com/?title=en-us/010_Installation_%26_Licensing/010/020/000_Wind_River_Product_Licensing_%E2%80%94_Video,_09:23

    From: 00:00 

        感谢您购买风河产品。我们致力于让您满意。该视频将引导您完成激活产品的过程。许多Wind River产品都经过许可管理。这意味着您的组织购买了一个许可证,允许您的开发人员同时运行风河产品的一定数量的副本或席位。当开发人员启动许可证管理产品时,产品会请求许可证。如果计算机配置为使用节点锁定许可证,则许可证请求和分配全部透明地发生在本地计算机或节点上。如果它被配置为使用浮动或命名用户许可证,则该产品请求许可证,并且该请求通过TCP IP网络传输到许可证服务器。如果该许可证服务器具有用于请求产品的可用席位,它将为请求节点分配席位,然后通过网络将其发送到该节点。

    From:01:04

        许可证服务器在网络上作为守护程序进程运行,监听来自开发工作站的许可证请求。这意味着为浮动或命名用户许可证配置的工作站必须连接到网络才能检索许可证。如果网络连接不可用,则可以在同一台计算机上设置许可证服务器和客户端。可以借用许可证,以便在工作站与网络断开连接时使用该产品。节点锁定许可证最适合安装在单个开发工作站上的产品。产品不通过网络共享,但任何人都可以通过物理访问工作站使用它们。当工作站与网络断开连接时,产品可以运行。浮动许可证允许您在一组用户中共享一个许可证席位池。

    From:02:02

        您的组织为每个产品购买了特定数量的席位,并且当他们全部投入使用时,其他开发人员无法在其他人完成之前使用该产品。开发工作站必须连接到网络以从许可证服务器请求许可证。命名用户许可证是授予特定用户的开发席位。包括开发工具,操作系统和中间件的软件座位一次只能由一台计算机的指定用户使用。指定的用户许可证还要求将用户登录名称包含在许可证包中。这是通过风河供应商守护程序的选项文件wrsd.opt中的条目建立的。现在让我们回到许可页面,然后回滚登录到产品激活

    From:03:00

        在登录屏幕上,输入您的用户名和密码,然后点击“提交”按钮。您将被带到Product Activation网站,它是Wind River支持网络的一部分。要激活您的产品或添加新的许可证,您需要将许可证号添加到您的帐户中。点击“激活您的产品”链接或“管理许可证”选项卡。任何一个人都会带你到同一页面。如果这不是您第一次使用门户网站,您会注意到现有许可证和操作的表格。我们将在下一个主题中回顾一下。点击“添加新许可”按钮开始。输入您的许可证号,管理令牌和一个标签,这是一个可选标识符,以防您想要命名您的许可证,然后点击“提交”和“管理许可证”。一旦你添加了新的许可证或者激活了你的产品,就有很多选择

    From:04:03

        您可以使用许可证管理。使用“激活产品”,您可以启用并分配Wind River产品供组织中的用户使用,查看授权和授权许可日期,或查看有关当前购买和当前分配的座席的详细信息。选择要激活的产品或产品,然后单击“下一步”。然后将产品分配给新的或现有的主机。由于没有任何可用的,我们将通过单击“创建新主机”按钮来创建一个新的。输入您的主机信息,然后单击“创建”以保存新主机。确认屏幕将会出现。点击“继续激活过程”。

    From:05:00

        选择一个主机,然后单击“下一步”。在验证/生成屏幕上,验证您的请求是否正确。此页面将显示您已请求激活的座位数量,以及剩余的座位数量。点击“下一步”下载或通过电子邮件发送许可证文件。在下载/电子邮件许可证页面上,您可以选择发送或下载许可证文件给您自己或组织内的其他许可管理员。现在让我们回到“管理许可证”页面。主机许可证文件允许您查看组织中的哪些机器当前正在分配Wind River产品许可证。 “Rehost”允许将活动许可证传输到另一台计算机,重新分配许可证,或者如果当前许可的计算机不再使用,则将其返回给池。请注意,如果您超过在线重复限制,则需要提交节点传输

    From:06:04

        协议。让我们来看看重新托管许可证的过程。选择现有主机将许可证传输到新的主机,然后单击“重新主机”按钮。选择重新托管的原因,输入数量,然后点击“下一步”继续。新主机屏幕与分配产品类似。同样,您可以将许可证部署到其他现有主机,也可以部署到新的主机。一旦你选择了另一个主机或者创建了一个新主机并点击了“下一步”,你就会看到一个验证页面。选中该框以同意软件许可协议,然后单击“下一步”。系统会显示一个确认页面,如果您希望重新提供更多座位,或者继续通过电子邮件发送或下载新的许可证文件,则可以返回。

    From:07:01

        再次,此页面将提供发送电子邮件或下载许可证文件的选项。安装密钥会带您进入显示安装Wind River产品所需的字母数字键的页面。 “查看产品”显示您订购的产品并支持维护状态。 “查看用户的临时激活”显示组织中的哪些用户在此次购买中安装了产品并进行了临时激活。您必须永久激活这些用户。 “许可证信息”会带您进入一个页面,其中列出了特定许可证号下的所有注册许可管理员。 “取消关联”可让您从特定许可中删除自己。 “管理主机”页面显示有关组织中已添加或创建的计算机的信息。

    From:08:01

        您可以定义新主机,通过点击标签来修改已定义的主机,或者在现有主机不再使用时删除它。您可以修改除主机ID值之外的所有字段。如果您想要将由不同用户创建的主机添加到您的帐户中,请创建相同的主机名和主机ID,然后您会收到一条消息,指出“您输入的主机已存在”。您可以选择:选择主机并将其添加到您的帐户,或返回并创建具有不同主机名和主机ID的主机。 “帮助”选项卡仅在此页面上提供,用于定义每个字段说明。许可证门户的另一个功能允许您查看通过主机标签,许可证号或序列号搜索的激活产品,如下所示。最后,交易历史记录页面会显示在下面完成的操作的日期和时间

    From:09:04

        一个特定的许可证号码,例如下载,关联或禁用许可证文件。请通过license@windriver.com与我们联系,或者如果您有任何问题,请点击许可证门户上的聊天按钮。感谢您的收看。

    展开全文
  • Remedy产品License配置说明,remedy平台架构描述,license测试。
  • Cisco License Manager可以识别和管理8000台交换机的许可证。Cisco License Manager 能独立使用,也能与CiscoWorks 系列管理工具集成在一起使用。
  • oracle所有产品license

    2009-06-18 11:10:00
    weblogic所有的licesnetuxedo所有的licesneoracle所有产品license希望对大家有所帮助! http://licensecodes.oracle.com/

    weblogic所有的licesne

    tuxedo所有的licesne

    oracle所有产品的license

    希望对大家有所帮助!

     

    http://licensecodes.oracle.com/

    展开全文
  • License介绍

    万次阅读 2019-10-24 17:55:25
    什么是License 许多混乱就始于你不知道License到底是什么,到底有...当你对你的产品使用License时,并不意味着你放弃了任何权利,你依然对其拥有原著作权。License只是授予他们于特定权利来使用你的产品License...

    原文:http://www.liferay.com/zh/community/forums/-/message_boards/message/4775410

    什么是License

    许多混乱就始于你不知道License到底是什么,到底有什么含义。当你对你的产品使用License时,并不意味着你放弃了任何权利,你依然对其拥有原著作权。License只是授予他们于特定权利来使用你的产品。

    License只是把你的作品释放到公有领域,或者给各个拷贝赋予权限。也意味着你放弃了版权收入,别人也没有义务把你列为原作者或贡献者。

    开放源代码许可协议更容易为他人作出贡献,而不必寻求特别的许可。它也可以保护你作为原创者的权利,至少确认了你的贡献。它还可以保证你的工作不为别人所剽窃。

    GNU General Public License

    GNU General Public License (GPL)的可能是开源项目最常用的许可证。GPL赋予和保证了开源项目开发者广泛的权利。基本上,它允许用户合法复制,分发和修改软件。 这意味着你可以:

    复制软件
    复制软件到自己的服务器,客户端的服务器,你自己的电脑,几乎任何你想要的地方,而且没有数量限制。
    发布软件
    发布你想要的软件,例如,在你的网站提供下载链接,刻成光盘,打印出来等等。
    收取费用
    如果你想在向别人提供软件时收费,如设置在别人的网站上或者其他用途时。GPL允许你这么做,但是你必须给客户提供一个GPL副本,告诉他们可以在其他地方得到免费版本。当然最好在此之前,告诉客户,你为什么收费。
    可以任意修改
    如果你想添加或删除功能,没问题。如果想在其他项目中使用部分代码,也是可以的,但是唯一的限制是此项目也必须按GPL发布。
    商业软件不能使用GPL协议的代码。

    GNU Lesser General Public License

    还有另一个GNU License:GNU Lesser General Public License (LGPL)。比起GPL它授予的权限较少。一般来说,LGPL比较适合连接到非GPL或者非开源文件的库文件。由于GPL的规定,使用到部分GPL代码的软件,必须也使用GPL,开发人员不能使用GPL来开发收费软件或者专有软件。LGPL则没有这方面的要求,不要求使用与部分代码相同的 License。

    商业软件可以使用,但不能修改LGPL协议的代码。

    BSD License

    BSD License与其他自由软件License相比,如GPL,限制更少。但是请注意到BSD License两种版本之间的差别:New BSD License/Modified BSD License 和Simplified BSD License/FreeBSD License。它们两者都是于GPL兼容的自由软件License。

    New BSD License (”3-clause license”) 可以用于任何作为版权声明和保证许可的免责声明的目的,可以通过无限长的再分发来得以维持,也就是说如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协 议。它还有一个特殊限制条款,不用特别的许可就是限制使用派生工作的工作者名字,也就是说不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

    New BSD License和Simplified BSD License的主要区别是,后者忽略了非认可条款。

    商业软件可以使用,也可以修改使用BSD协议的代码。

    MIT License

    MIT是和BSD一样宽松的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的。

    你可以使用,复制和修改软件
    你可以免费使用软件或出售
    唯一的限制是,它是必须附有MIT授权协议
    商业软件可以使用,也可以修改MIT协议的代码,甚至可以出售MIT协议的代码。

    Mozilla Public License 1.1 (MPL)

    MPL协议允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者。这种授权维护了商业软件的利益,,它要求基于这种软件得修改无偿贡献版权给该软件。这样,围绕该软件得所有代码得版权都集中在发起开发人得手中。但MPL是允许修改,无偿使用得。MPL软件对链接没有要求。

    商业软件可以使用,也可以修改MPL协议的代码,但修改后的代码版权归软件的发起者。

    Common Development and Distribution License

    CDDL(Common Development and Distribution License,通用开发与销售许可)开源协议,是MPL(Mozilla Public License)的扩展协议,它允许公共版权使用,无专利费,并提供专利保护,可集成于商业软件中,允许自行发布许可。

    商业软件可以使用,也可以修改CDDL协议的代码。

    Apache License

    Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布 (作为开源或商业软件)。需要满足的条件:

    需要给代码的用户一份Apache License。
    如果你修改了代码,需要在被修改的文件中说明。
    在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
    如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache License。你可以在Notice中增加自己的许可,但不可以表现为对Apache License构成更改。
    Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

    商业软件可以使用,也可以修改使用Apache协议的代码。

    Eclipse Public License

    EPL是一个与CPL相类似的许可证,任何扩展自Eclipse源码的代码也必须是开源的。

    Creative Commons

    Creative Commons(CC)的许可证不太开放源代码授权,它们通常用于设计项目。 CC许可证有着宽广的定义,每个定义都会授予一定的权利。它有四个基本部分,可以单独或者组合使用。下面是部分概述:

    署名
    作者必须是作品的原创者。 除此之外,作品可以修改,分发,复制和以其他方式使用。
    相同方式共享
    工作可以修改,分发等等,但必须在一个许可证下。
    非商业
    可以修改,分发等,但不用于商业目的。 关于什么是“商业”,说法比较含糊(没有提供明确的定义),因此您可能需要在自己的项目中澄清这一点。
    禁止修改
    这意味着您可以复制和分发许可工作,但你不能以任何方式修改,或在原有的基础开发。
    商业软件的使用要遵从CC协议的具体规定,最严格的许可证将是“署名,非商业,不能修改”的授权。这意味着你可以自由共享的工作,但不能改变它,你必须把它归功于原创者。

    Common Public License 1.0

    Common许可证有一些细节性的规定值得参考:

    明确了专利授权。一般的开源软件都明确源代码的版权人将自己的修改权、复制权等版权权利向公众许可,但保留署名权,而Common许可证在此基础上还明确假如源代码中含有专利权,源代码专利权人将复制、使用的专有权利向公众许可。
    规定可以将源代码及修改过的源代码与其他类型的不受本许可证约束的代码结合,以新产品的形式发布,只要其中经该许可证获得的源代码及修改过的源代码能按该许可证的要求发布即可。
    细化了该许可证终止的情形,包括发生专利侵权诉讼。
    明确了一个独立承担责任的原则,就是假如按该许可证使用源代码的使用者将获得的源代码应用于商业使用,那么他就要对在商业应用中出现的由于使用该源代码程序而产生的侵权诉讼承担完全责任。这一条规定是比较特殊的,绝大多数开源软件许可证都不这么要求。
    商业软件可以使用,也可以修改Common协议的代码,但要承担代码产生的侵权责任。

    博主按:http://opensource.org/licenses/ 记录了绝大部分(所有?)的license。

    展开全文
  • javaWeb产品项目license的开发使用

    千次阅读 2012-03-24 15:51:47
    公司开发的一个产品,提供给客户使用,要有试用的时间限制和购买的商业license限制。 我是这么做的,使用bcprov生成密钥来加密license,绑定服务器的ip和mac地址等,然后 使用sigar来取得服务的ip和mac等信息。 ...
  • License解释

    千次阅读 2017-06-23 11:04:09
    什么是License
  • 各种License

    千次阅读 2015-08-19 19:34:40
    当你对你的产品使用License时,并不意味着你放弃了任何权利,你依然对其拥有原著作权。License只是授予他们于特定权利来使用你的产品License只是把你的作品释放到公有领域,或者给各个拷贝赋予权限。也意味着...
  • License Manager

    2014-02-28 20:25:22
    安装新的 SuperMap License Manager 工具来对 SuperMap GIS 6R 的全系产品 进行许可配置,原 5.x 系列产品中所带的软件许可配置管理工具不能用于对 6R 系列产品的许可配置。同样地,SuperMap License Manager 6 也不...
  • 临时license:或者称为评测用license,英文称为evaluation key。每个临时license规定了在某个时间之前必须输入,输入后一般60天有效。 临时扩展license:英文称为extension key。当临时license失效后,可以使用...
  • ——这款软件的名字叫Balsamiq Mockups,号称可以跨越各种平台运行,并能快速画出产品原型,甚至江湖人称“让产品策划变成一种享受”——这话的潜台词是产品策划一直都是一份折磨人的工作
  • IBM Rational 产品许可证(License)主要有四种类型:第一种是试用版的许可证,如从 developerWorks 上下载的使用版,一般只能用较短时间(如 30 天或 60 天);第二种是 Rational 公共许可证(Common Licensing),...
  • 本文适用于所有 JetBrains 系列产品 打开激活窗口 选择 Activate new license with License server (用license server 激活) 在 License sever address 处填入 http://xidea.online 点击 Activate 进行认证 done!...
  • license.dat

    2011-04-06 22:49:43
    AspenPlus 11.1全系列产品通用license
  • 通常可以通过license机制来保护软件产品的安全,我们可以限定只有购买了license的用户在特定的机器上使用我们的软件。  我设想的license机制有以下的主要功能点: Ø 应用程序可以创建以及验证绑定给...
  • oracle收购BEA以后,BEA的weblogic、Tuxedo和Aqualogic不知道啥时候都免费了,官方放出了这些系列产品永久免费的License Keys下载:http://licensecodes.oracle.com/bea.html。
  • 顾名思义了~~基本上都是用那个注册机生成的,基本都能用
  • http://licensecodes.oracle.com/bea.html
  • BSD License

    2016-08-11 16:00:00
    BSD开源协议(original BSD license、FreeBSD license、Original BSD license)BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为...
  • 各种License介绍

    万次阅读 2017-03-03 17:49:46
    各种license的介绍,比较全面。... 什么是License 许多混乱就始于你不知道License到底是什么,到底有什么含义。当你对你的产品使用License时,并不意味着你放弃了任何权利,你依然对其拥有原著作权。License只是授
  • BEA全线产品的无限制授权许可License文件下载:无CPU限制、无IP限制、无IP访问限制http://asima.cqie.net/BEA_ALL_License.rar
  • 在使用正版Sybsase产品的时候,都会根据你机器的hostid为你提供一个正式的商用license.这个hostid是唯一的标识,非常重要。 生成hostid,最常见的是根据网卡的mac地址: M:\target\sysam-2.2\bin>lmutil ...
  • License制作

    2014-01-11 19:08:00
    最近,部门的产品要做license,于是上网查了一些通用软件的License做法,拿过来学习一下。 一个老外写的,很好,几乎完全涵盖了软件License的制作流程 http://afewguyscoding.com/2012/02/licensing-module-java/ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,895
精华内容 17,158
关键字:

产品license