包 | mx.data.crypto |
类 | public class EncryptionKeyGenerator |
继承 | EncryptionKeyGenerator Object |
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3.1 |
运行时版本: | Flash Player 9, AIR 1.1 |
此类使用的技术和算法可以在最大程度上保护数据隐私和安全性。如果应用程序要求在每用户级别上对数据进行加密(即,仅允许应用程序的一位用户访问他/她的数据),请使用此类来生成加密密钥。某些情况下,即使应用程序设计指定了其它用户可以访问数据,也可能要使用每用户加密来加密数据。有关详细信息,请参阅《使用 Flex 开发 Adobe AIR 应用程序》指南中的“使用数据库加密的注意事项”。
生成的加密密钥基于您所提供的密码。对于任何给定的密码,如果在同一个计算机上使用同一个用户帐户运行同一个 AIR 应用程序,则生成的加密密钥是相同的。
要从密码中生成加密密钥,请使用 getEncryptionKey()
方法。要在调用 getEncryptionKey()
方法前确定密码是否为强密码,请使用 validateStrongPassword()
方法。
此外,EncryptionKeyGenerator 中包括一个实用程序常量 ENCRYPTED_DB_PASSWORD_ERROR_ID
。此常量与 SQLError 错误的错误 ID 相匹配,此错误是在代码尝试打开已加密的数据库却提供了错误加密密钥时发生的。
此类用于创建可提供最高级别的数据隐私和安全性的加密密钥。为了实现此级别的安全性,必须遵守下列安全性原则:
- 应用程序绝不存储用户输入的密码。
- 应用程序绝不存储
getEncryptionKey()
方法返回的加密密钥。 - 每当用户运行应用程序并尝试访问数据库时,应用程序代码应调用
getEncryptionKey()
方法来重新生成加密密钥。
有关数据安全性的更多信息,以及对 EncryptionKeyGenerator 类中所使用的安全性技术的说明,请参阅《使用 Flex 开发 Adobe AIR 应用程序》指南中的“示例:生成和使用加密密钥”。
方法 | 由以下参数定义 | ||
---|---|---|---|
创建新的 EncryptionKeyGenerator 实例。 | EncryptionKeyGenerator | ||
使用密码生成 16 个字节的加密密钥。 | EncryptionKeyGenerator | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
检查密码,返回的值表示该密码是否为强密码。 | EncryptionKeyGenerator | ||
返回指定对象的原始值。 | Object |
常量 | 由以下参数定义 | ||
---|---|---|---|
ENCRYPTED_DB_PASSWORD_ERROR_ID : uint = 3138 [静态]
此常量与 SQLError 错误的错误 ID (3138) 相匹配,此错误是在代码尝试打开已加密的数据库却提供了错误加密密钥时发生的。 | EncryptionKeyGenerator |
EncryptionKeyGenerator | () | 构造函数 |
public function EncryptionKeyGenerator()
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3.1 |
运行时版本: | Flash Player 9, AIR 1.1 |
创建新的 EncryptionKeyGenerator 实例。
getEncryptionKey | () | 方法 |
public function getEncryptionKey(password:String, overrideSaltELSKey:String = null):ByteArray
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3.1 |
运行时版本: | Flash Player 9, AIR 1.1 |
使用密码生成 16 个字节的加密密钥。返回值可用作加密的 AIR 本地 SQL (SQLite) 数据库的加密密钥。
对于任何给定的密码,在同一个计算机上使用同一个用户帐户运行同一个 AIR 应用程序来调用 getEncryptionKey()
方法,则生成的加密密钥是相同的。
此方法用于创建可提供最高级别的数据隐私和安全性的加密密钥。为了实现此级别的安全性,应用程序必须遵守下列几项安全性原则:
- 应用程序绝不存储用户输入的密码。
- 应用程序绝不存储
getEncryptionKey()
方法返回的加密密钥。 - 每当用户运行应用程序并尝试访问数据库时,调用
getEncryptionKey()
方法来重新生成加密密钥。
有关数据安全性的更多信息,以及对 EncryptionKeyGenerator 类中所使用的安全性技术的说明,请参阅《使用 Flex 开发 Adobe AIR 应用程序》指南中的“示例:生成和使用加密密钥”。
参数
password:String — 用于生成加密密钥的密码。
| |
overrideSaltELSKey:String (default = null ) — EncryptionKeyGenerator 创建并存储一个随机值(称作 salt),这是生成加密密钥过程的一部分。应用程序第一次调用 getEncryptionKey() 方法时,创建 salt 值并存储到 AIR 应用程序的加密本地存储 (ELS) 中。此后,将从 ELS 加载 salt 值。
如果要为存储 salt 值提供自定义 String ELS 密钥,请指定 |
ByteArray — 生成的加密密钥,是 16 个字节的 ByteArray 对象。
|
引发
ArgumentError — 如果指定的密码不是强密码,不符合 validateStrongPassword() 方法描述中指定的条件
| |
ArgumentError — 如果为 overrideSaltELSKey 参数指定了非 null 值,且该值为空字符串 ("" )
|
validateStrongPassword | () | 方法 |
public function validateStrongPassword(password:String):Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3.1 |
运行时版本: | Flash Player 9, AIR 1.1 |
检查密码,返回的值表示该密码是否为强密码。强密码的条件包括:
- 至少 8 个字符
- 最多 32 个字符
- 包含至少一个小写字母
- 包含至少一个大写字母
- 包含至少一个数字或符号字符
参数
password:String — 要检查的密码
|
Boolean — 如果是强密码,则该值为 true ,否则为 false 。
|
ENCRYPTED_DB_PASSWORD_ERROR_ID | 常量 |
public static const ENCRYPTED_DB_PASSWORD_ERROR_ID:uint = 3138
语言版本: | ActionScript 3.0 |
产品版本: | Adobe Digital Enterprise Platform Data Services for Java EE 3.1 |
运行时版本: | Flash Player 9, AIR 1.1 |
此常量与 SQLError 错误的错误 ID (3138) 相匹配,此错误是在代码尝试打开已加密的数据库却提供了错误加密密钥时发生的。
Tue Jun 12 2018, 11:04 AM Z