Cipher Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement.
[Android.Runtime.Register("javax/crypto/Cipher", DoNotGenerateAcw=true)]
public class Cipher : Java.Lang.Object
[<Android.Runtime.Register("javax/crypto/Cipher", DoNotGenerateAcw=true)>]
type Cipher = class
inherit Object
- Héritage
- Dérivé
- Attributs
Remarques
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. Il forme le cœur de l’infrastructure JCE (Java Cryptographic Extension).
Pour créer un objet de chiffrement, l’application appelle la méthode du getInstance chiffrement et lui transmet le nom de la transformation demandée. Si vous le souhaitez, le nom d’un fournisseur peut être spécifié.
Une transformation est une chaîne qui décrit l’opération (ou l’ensemble d’opérations) à effectuer sur l’entrée donnée, pour produire une sortie. Une transformation inclut toujours le nom d’un algorithme de chiffrement (par exemple , DES) et peut être suivie d’un mode de commentaires et d’un schéma de remplissage.
Une transformation est de la forme :
<ul><li>"algorithm/mode/padding » ou
<li>"algorithm » </ul>
(dans ce dernier cas, les valeurs par défaut spécifiques au fournisseur pour le mode et le schéma de remplissage sont utilisées). Par exemple, voici une transformation valide :
{@code
Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
}
L’utilisation de modes tels que CFB et OFB, les chiffrements de blocs peuvent chiffrer des données en unités inférieures à la taille réelle du chiffrement. Lors de la demande d’un tel mode, vous pouvez éventuellement spécifier le nombre de bits à traiter à la fois en ajoutant ce nombre au nom du mode, comme indiqué dans les transformations «DES/CFB8/NoPadding » et «DES/OFB32/PKCS5Padding ». Si aucun tel nombre n’est spécifié, une valeur par défaut spécifique au fournisseur est utilisée. (Par exemple, le fournisseur SunJCE utilise une valeur par défaut de 64 bits pour DES.) Par conséquent, les chiffrements de blocs peuvent être transformés en chiffrements de flux orientés octets à l’aide d’un mode 8 bits tel que CFB8 ou OFB8.
Les modes tels que le chiffrement authentifié avec les données associées (AEAD) fournissent des garanties d’authenticité pour les données confidentielles et les données associées supplémentaires (AAD) qui ne sont pas chiffrées. (Consultez RFC 5116 pour plus d’informations sur les algorithmes AEAD et AEAD tels que GCM/CCM.) Les données confidentielles et AAD peuvent être utilisées lors du calcul de la balise d’authentification (similaire à un Mac). Cette balise est ajoutée au texte chiffré pendant le chiffrement et est vérifiée sur le déchiffrement.
Les modes AEAD tels que GCM/CCM effectuent tous les calculs d’authenticité AAD avant de commencer les calculs d’authenticité de texte chiffré. Pour éviter d’avoir à mettre en mémoire tampon en interne le texte chiffré, toutes les données AAD doivent être fournies aux implémentations GCM/CCM (via les updateAAD méthodes) <b>avant</b> que le texte chiffré est traité (via les méthodes et update les doFinal méthodes).
Notez que le mode GCM a une exigence d’unicité sur les IV utilisées dans le chiffrement avec une clé donnée. Lorsque les IV sont répétées pour le chiffrement GCM, ces utilisations sont soumises à des attaques de falsification. Par conséquent, après chaque opération de chiffrement utilisant le mode GCM, les appelants doivent réinitialiser les objets de chiffrement avec des paramètres GCM qui ont une valeur IV différente.
GCMParameterSpec s = ...;
cipher.init(..., s);
// If the GCM parameters were generated by the provider, it can
// be retrieved by:
// cipher.getParameters().getParameterSpec(GCMParameterSpec.class);
cipher.updateAAD(...); // AAD
cipher.update(...); // Multi-part update
cipher.doFinal(...); // conclusion of operation
// Use a different IV value for every encryption
byte[] newIv = ...;
s = new GCMParameterSpec(s.getTLen(), newIv);
cipher.init(..., s);
...
Android fournit les transformations suivantes : tableCipherthead<>tr<>th<Algorithm>/<><th th Modes>/th th<><Paddings>/th<><Supported API Levels>/th th Notes</th><>/<>thead<>tbody<>tr<><> td rowspan="3"span style="<white-space : nowrap">AES</span/td span><><><><>< style="white-space : nowrap">CBC</span><br><span style="white-space : nowrap">CFB</span><br><span style="white-space : nowrap">CTR</span br><span><style="white-space : nowrap">CT SS</span><br><span style="white-space : nowrap"ECB>/<span br><span style="white-space : nowrap"><OFB>/span/td td<><>span< style="white-space : nowrap"><>ISO10126Padding</span><br><span style="white-space : nowrap"NoPadding>/<span br><span style="white-space : nowrap"><PKCS5Padding>/span</td td><><span style="white-space : nowrap"><>1+</span></td td>/td<><></tr tr><td><><span style="white-space : nowrap">GCM</span/td><td><span>< style="white-space : nowrap">NoPadding/< span></><td td><span style="white-space : nowrap"10+>/span</td><></td><>/tr tr<><><td span style="white-space : nowrap"GCM-SIV></span>/td<><>span style="<white-space : nowrap"><NoPadding>/span</td><>td<span style="white-space : nowrap"><>30+</span></td/td></td><></tr><><td rowspan="3"><span style="white-space : nowrap">AES_128</span></td><><td span style="white-space : nowrap">CBC</span><br><span style="white-space : nowrap"ECB>/span</td><><span style="white-space : nowrap"><NoPadding>/span br<span style="white-space : nowrap"><><PKCS5Padding>/span<></td><td><span style="white-space : nowrap">26+</span></td><td></><tr><><><span style="white-space : nowrap">GCM</span/td td><><span>< style="white-space : nowrap">NoPadding</span></td><><td span style="white-space : nowrap">26+</span></td><td></td/td></tr tr><td span style="white-space : nowrap"GCM-SIV>/span</><><td td span style="white-space : nowrap"><NoPadding>/span/td td<><>span< style="white-space : nowrap"><>30+</span></td></><td></tr tr><><>td rowspan="3"<span style="white-space : nowrap">AES_256</span></td td td><><><><span style="white-space : nowrap">CBC</><span br><span style="white-space : nowrap">ECB</span></td><td><span style="white-space : nowrap"NoPadding>/span<br><span style="white-space : nowrap"><PKCS5Padding>/span</td><><span style="white-space : nowrap"><>26+</span></td/td>/td<></tr><><><td><span style="white-space : nowrap"GCM>/span</td td><><span style="white-space : nowrap"NoPadding></span/td td><><span> style="white-space : nowrap"<><26+>/span</td td><>td</><>tr tr<><><td span style="white-space : nowrap"><>GCM-SIV</span/td><><td span>< style="white-space : nowrap">NoPadding</span/td td><><span>< style="white-space : nowrap">30+</span></><td></td></tr tr><tr><rowspan="2"><span style="white-space : nowrap">ARC4</span></td><><span style="white-space : nowrap">ECB</span></td><><span style="white-space="white-space : nowrap">NoPadding/< span></><><td td span style="white-space : nowrap">10+</span></td><></td></tr tr><>td<><span style="white-space : nowrap">NONE</span/td td><><span>< style="white-space : nowrap">NoPadding</span></td><><td span style="white-space : nowrap">28+</span></td><td/td><></tr tr><td><><span style="white-space : nowrap">BLOWFISH</span></td><td><span style="white-space : nowrap">CBC</span br><span><style="white-space : nowrap">CFB</span><br><span style="white-space : nowrap"CTR>/span<br><span style="><white-space : nowrap">CTS</span><br><span style="white-space : nowrap » >ECB</span><br><span style="white-space : nowrap"OFB>/span</td><>td<span style="white-space : nowrap"><ISO10126Padding>/span<br><span style="white-space : nowrap"><NoPadding>/span br<span style="white-space : nowrap"><PKCS5Padding></span/td><td span>< style="white-space : nowrap>"<10+></>span</td td><>td td td<></td></tr tr td><><><span style="white-space : nowrap">ChaCha20</span></td><td><span style="white-space : nowrap">NONE</span><br><span style="white-space : nowrap">Poly1305</span></td><><td span style="white-space : nowrap">NoPadding</span></td><><span style="white-space : nowrap>"28+</span></td td span><td>ChaCha avec 20 rounds, nonce 96 bits et compteur 32 bits, comme décrit dans RFC 7539.</td>/tr tr<><><td span style="white-space : nowrap"><DES>/span</td td><><span style="white-space : nowrap"><CBC>/span br<span><style="white-space : nowrap"><CFB>/span<br><span style="white-space : nowrap"CTR></span>br<span style="><white-space : nowrap"><CTS>/span span<><style="white-space : nowrap »><>ECB</span><br><span style="white-space : nowrap"OFB>/span</td td><><span style="white-space : nowrap"><ISO10126Padding>/span<br><span style="white-space : nowrap"><NoPadding>/span br<span style="white-space : nowrap"><PKCS5Padding></span/td><span style="white-space : nowrap"><>1+</><span></td td><>td td<></td></tr tr td><><><span style="white-space : nowrap">DESede</span></td><td><span style="white-space : nowrap">CBC</span><br><span style="white-space : nowrap">CFB</span><br><span style="white-space : nowrap"CTR>/span<br><span style="><white-space : nowrap">CTS</span><br><span style="white-space : nowrap">ECB/< span><br><span style="white-space : nowrap"OFB>/span</td td><><span style="white-space : nowrap"><ISO10126Padding/span>br<span style="white-space : nowrap"><NoPadding></span br>span style="white-space : nowrap"<PKCS5Padding><></span>/td<><td>span style="white-space : nowrap<"><1+>/<span></td td><><></tr><tr><td rowspan="3"><span style="white-space : nowrap">RSA</span></td td><rowspan="3"><span style="white-space : nowrap">ECB</span><br><span style="white espace : nowrap"NONE>/span/td td<><>span< style="white-space : nowrap"><NoPadding>/span br<span><style="><white-space : nowrap">OAEPPadding</span><br><span style= » espace blanc : nowrap">PKCS1Padding</span></td td><><span style="white-space : nowrap">1+</span/td><>td</td/td><>/tr tr td<><><span>< style="white-space : nowrap">OAEPwithSHA-1andMGF1Padding</span><br><span style="white-space : nowrap">OAEPwithSHA-256andMGF1Padding</span></td td><><span style= » espace blanc : nowrap"10+/span>/td/td<><><></tr tr><><>td span style="white-space : nowrap"<OAEPwithSHA-224andMGF1Padding></span>br<span style="white-space : nowrap"OAEPwithSHA-384andMGF1Padding></span><br>span style="<white-space : nowrap"><OAEPwithSHA-512andMGF1Padding></span>/td td<><>span style= »<>< espace blanc : nowrap"23+/span>/td/td/td<><><></tr/tbody><></table><>
Ces transformations sont décrites dans la section Chiffrement de la documentation relative au nom d’algorithme standard de l’architecture de chiffrement Java.
Ajouté dans la version 1.4.
Documentation Java pour javax.crypto.Cipher.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.
Constructeurs
| Nom | Description |
|---|---|
| Cipher(CipherSpi, Provider, String) |
Crée un objet de chiffrement. |
| Cipher(IntPtr, JniHandleOwnership) |
Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime. |
Champs
| Nom | Description |
|---|---|
| DecryptMode |
Obsolète.
Constante utilisée pour initialiser le chiffrement en mode déchiffrement. |
| EncryptMode |
Obsolète.
Constante utilisée pour initialiser le chiffrement en mode de chiffrement. |
| PrivateKey |
Obsolète.
Constante utilisée pour indiquer que la clé to-be-unwrapped est une « clé privée ». |
| PublicKey |
Obsolète.
Constante utilisée pour indiquer que la clé to-be-unwrapped est une « clé publique ». |
| SecretKey |
Obsolète.
Constante utilisée pour indiquer que la clé to-be-unwrapped est une « clé secrète ». |
| UnwrapMode |
Obsolète.
Constante utilisée pour initialiser le chiffrement en mode key-unwrapping. |
| WrapMode |
Obsolète.
Constante utilisée pour initialiser le chiffrement en mode d’habillage de clé. |
Propriétés
| Nom | Description |
|---|---|
| Algorithm |
Retourne le nom de l’algorithme de cet |
| BlockSize |
Retourne la taille du bloc (en octets). |
| Class |
Retourne la classe runtime de ce |
| ExemptionMechanism |
Retourne l’objet de mécanisme d’exemption utilisé avec ce chiffrement. |
| Handle |
Handle de l’instance Android sous-jacente. (Hérité de Object) |
| JniIdentityHashCode |
Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité. (Hérité de Object) |
| JniManagedPeerState |
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. (Hérité de JavaObject) |
| JniPeerMembers |
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. |
| Parameters |
Retourne les paramètres utilisés avec ce chiffrement. |
| PeerReference |
Obtient la référence d’objet JNI pour cet homologue Java. (Hérité de Object) |
| Provider |
Retourne le fournisseur de cet |
| ThresholdClass |
Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code. |
| ThresholdType |
Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code. |
Méthodes
| Nom | Description |
|---|---|
| Clone() |
Crée et retourne une copie de cet objet. (Hérité de Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. (Hérité de JavaObject) |
| Dispose() |
Libère les ressources détenues par cet homologue Java. (Hérité de Object) |
| Dispose(Boolean) |
Libère les ressources détenues par cet homologue Java. (Hérité de Object) |
| DisposeUnlessReferenced() |
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. (Hérité de JavaObject) |
| DoFinal() |
Termine une opération de chiffrement ou de déchiffrement en plusieurs parties, selon la façon dont ce chiffrement a été initialisé. |
| DoFinal(Byte[], Int32, Int32, Byte[], Int32) |
Chiffre ou déchiffre les données dans une opération en une seule partie ou termine une opération en plusieurs parties. |
| DoFinal(Byte[], Int32, Int32, Byte[]) |
Chiffre ou déchiffre les données dans une opération en une seule partie ou termine une opération en plusieurs parties. |
| DoFinal(Byte[], Int32, Int32) |
Chiffre ou déchiffre les données dans une opération en une seule partie ou termine une opération en plusieurs parties. |
| DoFinal(Byte[], Int32) |
Termine une opération de chiffrement ou de déchiffrement en plusieurs parties, selon la façon dont ce chiffrement a été initialisé. |
| DoFinal(Byte[]) |
Chiffre ou déchiffre les données dans une opération en une seule partie ou termine une opération en plusieurs parties. |
| DoFinal(ByteBuffer, ByteBuffer) |
Chiffre ou déchiffre les données dans une opération en une seule partie ou termine une opération en plusieurs parties. |
| Equals(Object) |
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. (Hérité de JavaObject) |
| Equals(Object) |
Indique si un autre objet est « égal à » celui-ci. (Hérité de Object) |
| GetHashCode() |
Retourne une valeur de code de hachage pour l’objet. (Hérité de Object) |
| GetInstance(String, Provider) |
Retourne un |
| GetInstance(String, String) |
Retourne un |
| GetInstance(String) |
Retourne un |
| GetIV() |
Retourne le vecteur d’initialisation (IV) dans une nouvelle mémoire tampon. |
| GetMaxAllowedKeyLength(String) |
Retourne la longueur maximale de la clé pour la transformation spécifiée en fonction des fichiers de stratégie de compétence JCE installés. |
| GetMaxAllowedParameterSpec(String) |
Retourne un objet AlgorithmParameterSpec qui contient la valeur maximale du paramètre de chiffrement en fonction du fichier de stratégie de compétence. |
| GetOutputSize(Int32) |
Retourne la longueur en octets qu’une mémoire tampon de sortie doit être pour contenir le résultat de la prochaine |
| Init(CipherMode, Certificate, SecureRandom) |
Initialise ce chiffrement avec la clé publique à partir du certificat donné et une source de randomité. |
| Init(CipherMode, Certificate) |
Initialise ce chiffrement avec la clé publique à partir du certificat donné. |
| Init(CipherMode, IKey, AlgorithmParameters, SecureRandom) |
Initialise ce chiffrement avec une clé, un ensemble de paramètres d’algorithme et une source de randomité. |
| Init(CipherMode, IKey, AlgorithmParameters) |
Initialise ce chiffrement avec une clé et un ensemble de paramètres d’algorithme. |
| Init(CipherMode, IKey, IAlgorithmParameterSpec, SecureRandom) |
Initialise ce chiffrement avec une clé, un ensemble de paramètres d’algorithme et une source de randomité. |
| Init(CipherMode, IKey, IAlgorithmParameterSpec) |
Initialise ce chiffrement avec une clé et un ensemble de paramètres d’algorithme. |
| Init(CipherMode, IKey, SecureRandom) |
Initialise ce chiffrement avec une clé et une source de randomité. |
| Init(CipherMode, IKey) |
Initialise ce chiffrement avec une clé. |
| JavaFinalize() |
Obsolète.
Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet. (Hérité de Object) |
| Notify() |
Réveille un thread unique qui attend le moniteur de cet objet. (Hérité de Object) |
| NotifyAll() |
Réveille tous les threads qui attendent le moniteur de cet objet. (Hérité de Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Définit la propriété Handle. (Hérité de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. (Hérité de JavaObject) |
| ToArray<T>() |
Crée un tableau managé à partir de ce wrapper de tableau Java. (Hérité de Object) |
| ToString() |
Retourne une représentation sous forme de chaîne de l’objet. (Hérité de Object) |
| UnregisterFromRuntime() |
Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité. (Hérité de Object) |
| Unwrap(Byte[], String, KeyType) |
Décompressez une clé encapsulée précédemment. |
| Update(Byte[], Int32, Int32, Byte[], Int32) |
Poursuit une opération de chiffrement ou de déchiffrement à plusieurs parties (selon la façon dont ce chiffrement a été initialisé), en traitant une autre partie de données. |
| Update(Byte[], Int32, Int32, Byte[]) |
Poursuit une opération de chiffrement ou de déchiffrement à plusieurs parties (selon la façon dont ce chiffrement a été initialisé), en traitant une autre partie de données. |
| Update(Byte[], Int32, Int32) |
Poursuit une opération de chiffrement ou de déchiffrement à plusieurs parties (selon la façon dont ce chiffrement a été initialisé), en traitant une autre partie de données. |
| Update(Byte[]) |
Poursuit une opération de chiffrement ou de déchiffrement à plusieurs parties (selon la façon dont ce chiffrement a été initialisé), en traitant une autre partie de données. |
| Update(ByteBuffer, ByteBuffer) |
Poursuit une opération de chiffrement ou de déchiffrement à plusieurs parties (selon la façon dont ce chiffrement a été initialisé), en traitant une autre partie de données. |
| UpdateAAD(Byte[], Int32, Int32) |
Poursuit une mise à jour en plusieurs parties des données d’authentification supplémentaires (AAD), à l’aide d’un sous-ensemble de la mémoire tampon fournie. |
| UpdateAAD(Byte[]) |
Poursuit une mise à jour multiparte des données d’authentification supplémentaires (AAD). |
| UpdateAAD(ByteBuffer) |
Poursuit une mise à jour multiparte des données d’authentification supplémentaires (AAD). |
| Wait() |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<> (Hérité de Object) |
| Wait(Int64, Int32) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
| Wait(Int64) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
| Wrap(IKey) |
Encapsulez une clé. |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IJavaPeerable.Disposed() |
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. (Hérité de JavaObject) |
| IJavaPeerable.Finalized() |
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. (Hérité de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. (Hérité de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. (Hérité de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. (Hérité de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. (Hérité de JavaObject) |
Méthodes d’extension
| Nom | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtient le nom JNI du type de l’instance |
| JavaAs<TResult>(IJavaPeerable) |
Essayez de forcer |
| JavaCast<TResult>(IJavaObject) |
Effectue une conversion de type vérifiée par le runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Cette classe fournit les fonctionnalités d’un chiffrement de chiffrement pour le chiffrement et le déchiffrement. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Essayez de forcer |