术语与名词解释 » 特征项 (Feature)

特征项是产品授权设置的核心内容,一般用于应用程序功能模块的授权或为应用程序添加加密调用点。每个授权产品默认包含最多64个特征项,并且可以根据需要增加。 特征项由特征ID及特征名称来标识,其中特征ID用于在API调用过程中标识特征项,特征名称用于在界面上标识特征项。特征ID和特征名称在产品内唯一。

特征项包含类型和值等基本属性,以及有效期、用户数等授权属性。这些属性决定了特征项在API调用中的表现。

授权产品的特征项编辑界面如下图所示。

产品特征项

特征项属性

特征项的数量、名称、类型、可覆盖属性,以及所有对特征组的设置都只能在产品特征项设置界面完成。 在模版、授权码的特征项设置界面中只能对特征项进行选择,设置特征项的授权属性,或修改具有“可覆盖”属性的特征项值。

下面是对产品特征项界面的基本特征项属性的说明:

  • ID:由系统分配的特征项标识,整数类型。特征ID主要用于客户端API调用时指定特征项。
  • 名称:可编辑的特征项名称字符串,用于标识特征项的用途。特征项名称在集团授权管理界面以及其它与特征项显示有关的工具界面上对最终用户可见。
  • 类型:不同的特征项类型决定了其可进行的操作。
  • 可覆盖:表示是否可以在模版或授权码中重新设定该特征项的值。当不同的用户或模版可能使用不同的特征值时,应设置。
  • 值:用于影响特征项的API操作结果。

在模块和SN中可以设置和修改特征项的授权属性,注意这些属性同时受其所在授权码的授权属性约束。特征项的授权属性包括:

  • 有效期:该特征项自所在授权码激活时算起所能使用的期限,以“天”为单位。
  • 结束日期:特征项的授权结束日期,特征项可用到结束日期当天的24点。
  • 用户数:只对集团授权类型的SN可设,用于设置该特征项的可用用户数。

特征项类型

特征项可以是下面的类型之一:

  • 只读:表示特征值存储只读数据。客户端API无法对它进行写操作。可用操作:ReadFeature。
  • 读写:表示特征值既可读也可以修改。可用操作:ReadFeature,WriteFeature。
  • 算法:表示特征值是一个算法因子。算法特征不能进行读、写,只提供对输入数据的单向转换操作:ConvertFeature。
  • 密钥:表示特征值是AES密钥因子。密钥特征可以进行加、解密操作:EncryptFeature,DecryptFeature。

所有的特征项类型都支持 QueryFeature 和 ReleaseFeature 操作,以检查特征项是否存在及是否有效。对于集团授权来说,QueryFeature还会占用模块用户数,ReleaseFeature用来释放模块用户数。 对这两个函数的调用在代码中应该成对出现。

特征组

可以对特征项分组,以方便管理和选择。默认时,产品特征项只有一个“所有”组,包含了所有特征项。通过点击在产品特征项编辑界面左侧的“+”号,可以创建新的特征组。

将鼠标移动到某个特征组名称上,名称的右侧会出现“x”号,点击将会删除特征组。

点击特征组名称,将会进入该特征组的编辑界面,在编辑界面里可以选择该特征组所包含的特征项。新产生的特征项默认不会出现在除“所有”之外的特征组里,必须手工进行添加。

模版特征项设置

可以在模版的特征项设置页面修改每一个特征项的“控制”属性,为特征项添加“锁定”或“隐藏”控制。对于在模版中锁定的特征项,在SN中可见,但不可编辑或修改选择状态;对于隐藏的特征项,在SN中将不可见。特征项锁定和隐藏属性进一步增强了软件授权中的多模块管理功能。

模版特征项

典型用法

特征项主要用于对应用程序的多模块操作,以及添加必要的加密验证点。

一般来说,在应用程序的特征项设置中可以为每一个需要单独授权的模块分配一个主特征项,用于授权验证,并根据需要添加几个用于加密的辅助特征项。 在每一个模块代码的开始部分调用 QueryFeature 对主特征项进行验证,判断该模块是否授权及授权是否有效,在模块退出前则应相应调用 ReleaseFeature 释放对模块的占用,这对于集团授权是非常重要的。 在代码的其它部分可以随机操作辅助特征项,以加强安全验证。

根据用户的订单,开发商内部的操作人员在授权码中选择需要授权的模块,并为这些模块设置有效期和用户数,确保用户获得相应的授权。


不需要在程序中过于频繁地调用特征项操作函数,以避免软件的运行速度受到影响。
DRM产品的特征项类型不能设置,并且不能选择可覆盖属性,这是因为DRM产品的特征项用于提供数字内容的加密密钥。
对于“密钥”和“算法”类型的特征项,当操作人员只有读权限时,其特征值不可见,并显示为“********”。