Referência do ActionScript® 3.0 para Adobe® Flash® Platform
Início  |  Ocultar listas de Pacotes e Classes |  Pacotes  |  Classes  |  Novidades  |  Índice  |  Apêndices  |  Por que inglês?
Filtros: Recuperando dados do servidor...
Recuperando dados do servidor...
flash.data 

EncryptedLocalStore  - AS3

Pacoteflash.data
Classepublic class EncryptedLocalStore
HerançaEncryptedLocalStore Inheritance Object

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0

A classe EncryptedLocalStore (ELS) oferece um mecanismo de armazenamento local criptografado que pode ser usado como um pequeno cache para os dados privados de um aplicativo.

Os dados de ELS não podem ser compartilhados entre aplicativos. O objetivo do ELS é permitir que um aplicativo armazene itens recriados com facilidade, como credenciais de logon e outras informações privadas. Os dados de ELS não devem ser considerados permanentes. Consulte "Limitações do armazenamento local criptografado" e "Práticas recomendadas do uso de ELS". abaixo.

Suporte a perfil do AIR: não há suporte para este recurso em dispositivos AIR for TV. Você pode testar o suporte em tempo de execução usando a propriedade EncryptedLocalStore.isSupported. Consulte Suporte a perfil do AIR para obter mais informações sobre o suporte de API através de múltiplos perfis.

O AIR fornece um armazenamento local criptografado (ELS) para cada aplicativo AIR instalado em um computador ou dispositivo de um usuário. Isso permite salvar e recuperar dados armazenados no disco rígido local do usuário em um formato criptografado que não possa ser facilmente decifrado por outros aplicativos ou usuários. Um armazenamento criptografado separado é usado para cada aplicativo AIR, e cada aplicativo AIR usa um armazenamento local criptografado separado para cada conta de usuário no computador.

Use o armazenamento local criptografado para armazenar em cache informações que devem ser protegidas, tais como credenciais de login para serviços da Web. O ELS é apropriado para armazenar informações que devem ser mantidas sigilosas para outros usuários. O ELS, contudo, não protege os dados de outros processos executados sob a mesma conta de usuário. Desta maneira, não é apropriado para proteger dados de aplicativo secretos, tais como DRM (gerenciamento digital de direitos) ou chaves de criptografia.

O AIR utiliza o DPAPI no Windows, o KeyChain no Mac OS e iOS e o KeyRing ou KWallet no Linux para associar o armazenamento local criptografado a cada aplicativo e usuário. O armazenamento local criptografado usa a criptografia AES-CBC de 128 bits.

No Android, os dados armazenados pela classe EncryptedLocalStorage não são criptografados. Em vez disso, os dados são protegidos pela segurança em nível de usuário fornecida pelo sistema operacional. O sistema operacional Android atribui um ID de usuário separado para cada aplicativo. Os aplicativos podem acessar somente seus próprios arquivos e arquivos criados em locais públicos (tais como cartões de armazenamento removíveis). Observe que nos dispositivos de raiz do Android os aplicativos que operam com privilégios de raiz podem acessar os arquivos de outros aplicativos. Dessa forma, em um dispositivo enraizado, o armazenamento local criptografado não fornece um nível muito alto de proteção de dados como ocorre em um dispositivo não-enraizado.

As informações no depósito local criptografado só estão disponíveis a conteúdo de aplicativos AIR na área de segurança application.

Se você atualizar um aplicativo AIR, a versão atualizada conservará o acesso a qualquer dado existente no armazenamento local criptografado, a menos que:

  • Os itens foram adicionados com o conjunto de parâmetros stronglyBound definido como true
  • Você atualizou do namespace AIR 3.2 para o AIR 3.3 (o local físico do armazenamento local criptografado entre o AIR 3.2 e o AIR 3.3 para Mac OS e Windows)
  • As versões existentes e as versões de atualização foram ambas publicadas antes do AIR 1.5.3 e a atualização foi assinada com uma assinatura de migração

Limitações do armazenamento local criptografado

Os dados no armazenamento local criptografado são protegidos pelas credenciais de conta do sistema operacional do usuário. Outras entidades não podem acessar os dados no armazenamento, a menos que eles possam fazer logon como aquele usuário. Contudo, os dados não são protegidos contra o acesso por outros aplicativos executados por um usuário autenticado. Assim, o dado que o seu aplicativo pode querer manter-se secreto de usuários, tais como chaves usadas para autorização ou gerenciamento digital dos direitos, não é seguro. O ELS não é um local apropriado para armazenar tais informações. É apenas um lugar apropriado para guardar dados particulares de um usuário, tais como senhas.

Os dados no ELS podem ser perdidos por vários motivos. Por exemplo, o usuário pode desinstalar o aplicativo e excluir o arquivo criptografado. Ou o ID do publicador pode ser modificado em consequência de uma atualização. Assim, o ELS deve ser tratado como uma cache particular, não como um armazenamento de dados permanente.

O parâmetro stronglyBound é deprecado e não deve ser definido como true . Definir o parâmetro como true não fornece nenhuma proteção adicional para os dados. Ao mesmo tempo, o acesso aos dados é perdido sempre que o aplicativo é atualizado — mesmo que ID do publicador seja o mesmo.

O depósito local criptografado poderá ficar mais lento se os dados armazenados excederem 10 MB.

Quando você desinstala um aplicativo AIR, o desinstalador não exclui os dados armazenados no depósito local criptografado.

Práticas recomendadas do uso de ELS

As melhores práticas para usar o ELS incluem:

  • Usar o ELS para armazenar dados de usuário sensíveis, tais como senhas (configurando stronglyBound como false)
  • Não use o ELS para armazenar segredos de aplicativos, tais como chaves de DRN ou símbolos de licenciamento
  • Forneça um caminho do seu aplicativo para recriar os dados guardados no ELS, se os dados do ELS forem perdidos. Por exemplo, solicitando ao usuário que reinsira as suas credenciais de conta quando necessário.
  • Não use o parâmetro stronglyBound .
  • Se você definir stronglyBound como true, não migre itens armazenados durante uma atualização. Em vez disso, recrie os dados depois da atualização.
  • apenas guarde quantidades relativamente pequenas de dados. Para grandes quantidades de dados, use um banco de dados AIR SQL com criptografia.

Os itens no depósito local criptografado são identificados por uma string. Todos os itens são armazenados como dados de matriz de bytes.

Veja os exemplos



Propriedades públicas
 PropriedadeDefinido por
 Inheritedconstructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto.
Object
      isSupported : Boolean
[estático] [somente leitura] A propriedade isSupported será definida como true se a classe EncryptedLocalStore for suportada na plataforma atual; de outra maneira, ela será definida como false.
EncryptedLocalStore
Métodos públicos
 MétodoDefinido por
  
    getItem(name:String):ByteArray
[estático] Os dados correspondentes ao nome especificado.
EncryptedLocalStore
 Inherited
Indica se um objeto tem uma propriedade especificada definida.
Object
 Inherited
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro.
Object
 Inherited
Indica se a propriedade especificada existe e é enumerável.
Object
  
    removeItem(name:String):void
[estático] Remove o item com o nome especificado no armazenamento local criptografado.
EncryptedLocalStore
  
    reset():void
[estático] Limpa todo o depósito local criptografado, excluindo todos os dados.
EncryptedLocalStore
  
    setItem(name:String, data:ByteArray, stronglyBound:Boolean = false):void
[estático] Armazena um objeto ByteArray sob o nome especificado.
EncryptedLocalStore
 Inherited
Define a disponibilidade de uma propriedade dinâmica para operações de repetição.
Object
 Inherited
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade.
Object
 Inherited
Retorna a representação de string do objeto especificado.
Object
 Inherited
Retorna o valor primitivo do objeto especificado.
Object
Detalhes da propriedade
    

isSupported

propriedade
isSupported:Boolean  [somente leitura]

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 2

A propriedade isSupported será definida como true se a classe EncryptedLocalStore for suportada na plataforma atual. de outra maneira, ela será definida como false.



Implementação
    public static function get isSupported():Boolean
Detalhes do método

    getItem

()método
public static function getItem(name:String):ByteArray

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0

Os dados correspondentes ao nome especificado.

Se não existir um item com o nome especificado, esse método retornará null.

Parâmetros

name:String — O nome do item no armazenamento local criptografado.

Retorna
ByteArray — Os dados ByteArray. Se não houver dados para o name fornecido, o método retornará null.

Lança
ArgumentError — O valor name é null ou uma string vazia.

    removeItem

()método 
public static function removeItem(name:String):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0

Remove o item com o nome especificado no armazenamento local criptografado.

Parâmetros

name:String — O nome do item no armazenamento local criptografado.


Lança
ArgumentError — O valor name é null ou uma string vazia.

    reset

()método 
public static function reset():void

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0

Limpa todo o depósito local criptografado, excluindo todos os dados.

    setItem

()método 
public static function setItem(name:String, data:ByteArray, stronglyBound:Boolean = false):void

Versão da linguagem: ActionScript 3.0
Versões de runtime: AIR 1.0

Armazena um objeto ByteArray sob o nome especificado.

Parâmetros

name:String — O nome do item no armazenamento local criptografado.
 
data:ByteArray — Os dados.
 
stronglyBound:Boolean (default = false) — (deprecado) O parâmetro stronglyBound deve ser definido como false (o valor padrão). Se for definido como true , o item armazenado não poderá ser recuperado se algum arquivo do aplicativo for alterado. Por exemplo, se um usuário instalar uma atualização do aplicativo, o aplicativo atualizado não poderá ler nenhum dado fortemente vinculado que tenha sido gravado anteriormente no armazenamento local criptografado.


Lança
ArgumentError — O valor name é null ou uma string vazia.
 
ArgumentError — O valor data é null.
EncryptedLocalStore.1.as

O código a seguir armazena uma string no depósito local criptografado, recupera essa string e, depois, a exclui:
var str:String = "Bob";
var bytes:ByteArray = new ByteArray();
bytes.writeUTFBytes(str);
EncryptedLocalStore.setItem("firstName", bytes);

var storedValue:ByteArray = EncryptedLocalStore.getItem("firstName");
trace(storedValue.readUTFBytes(storedValue.length)); // "Bob"

EncryptedLocalStore.removeItem("firstName");




[ X ]Por que inglês?
O conteúdo na Referência do ActionScript 3.0 aparece em inglês

Nem todas as partes da Referência do ActionScript 3.0 estão traduzidas em todos os idiomas. Quando um elemento de um idioma não está traduzido, ele é exibido em inglês. Por exemplo, a classe ga.controls.HelpBox não está traduzida em nenhum idioma. Por isso, na versão da referência em português do Brasil, a classe ga.controls.HelpBox é exibida em inglês.