Guía de desarrollo

Local Navigation

MAC

Una MAC se utiliza para comprobar que la información que se pasa a través de ésta no se ha alterado o modificado. Se trata esencialmente de una función de hash con clave. Se necesita una clave para llevar a cabo la creación y verificación del valor de hash.

La funcionalidad de MAC se basa en la interfaz Digest y se proporciona en la interfaz net.rim.device.api.crypto.MAC. Una MAC puede utilizarse con un compendio con el fin de garantizar que los datos no se modifiquen sin permiso.

La RIM Cryptographic API admite las siguientes MAC:

  • CBC MAC
  • HMAC
  • MAC nula

La clase HMAC implementa la interfaz MAC y permite el uso sencillo de las funciones de hash con clave. El código necesario para utilizar una HMAC es similar al de los compendios, con la salvedad de que en el caso de la HMAC es necesario utilizar una clave para generar el hash.

Ejemplo de código

El ejemplo siguiente crea una clave de HMAC, que puede ser una matriz de datos de cualquier longitud. En la mayoría de los casos, se recomienda una longitud equivalente al tamaño de bits del compendio. En este ejemplo se utilizan datos aleatorios.

byte[] keyData = new byte[ 20 ];
RandomSource.getBytes( keyData );
// Create the key.
HMACKey key = new HMACKey( keyData );
// Create the SHA digest.
SHA1Digest digest = new SHA1Digest();
// Create the HMAC, passing in the key and the SHA digest. 
// Any instance of a digest can be used here.
HMAC hMac = new HMAC( key, digest );
// The HMAC can be updated much like a digest.
hMac.update( data );
hMac.update( data, 10, 15 );
// Now get the MAC value.
byte[] macValue = hMac.getMAC();
Tema anterior: Compendios

¿Le ha resultado útil esta información? Envíenos sus comentarios.