À propos de l'authentification par signature avec Java Time 1

Exemple de signature et d'authentification (Java)

  1. Fichiers jar requis: commons-codec-1.11.jar, bcprov-ext-jdk15on-158.jar

  2. Exemple de source pour la signature

Données à signer (chaîne de caractères (42 octets) qui combine «date et heure de la transaction» (14 octets), «numéro d'identification du terminal» (13 octets), «numéro de série du traitement du terminal» (15 octets)) String message = "20171201091011A004012345678012345678901234";

Lecture du fichier de clé privée Security.addProvider(new BouncyCastleProvider());

Générer une cible de clé privée PKCS8EncodedKeySpec pkcs8 = new PKCS8EncodedKeySpec(privateKeyByte);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) keyFactory.generatePrivate(pkcs8);

Signer avec les données à signer et la clé privée cible Signature signer = Signature.getInstance("SHA256withRSA");
signer.initSign(rsaPrivateKey);
signer.update(message.getBytes("UTF-8"));
byte[] signByte = signer.sign();

Conversion au format hexadécimal en fonction des octets de signature générés Hex.encodeHexString(signByte);

7154172627db05f2eb6c8d0f522bd6d1ae0551899944e5a06170abd40e86d49a9204d29e1b251898fc47c633236168aafccf07d6458179f2cceb606dc4c84a3f7f9767fc4b00d3c43feabbc11ef750ca6d85bd7084e74b6c9bdd5bc2f497dae392b9f833a3e52133df74213770da74d9e2a9b08cbe2cf50d5bf1fbcdc00f4bab59ea885aeaaeb8e7a400491ba87c6121c4273a9daf723b89df0e6c4d62823a97db89e6eadea6800a0b692d6d4c19a343b0d762d4dcfd63ce7f41b291619ce2fda299533268d795188cb0cdfbd1a3f1e13f5399cfd52087396cf1a20361629495507569da9472602c985f3d90d35e4838cb9228a52ed211635faa55c94ba0dfbf

    1. Exemple de source pour l'authentification

Lire le fichier de clé publique PemReader pemPubReader = new PemReader(new FileReader("./file/public-key.pem"));
PemObject objPub = pemPubReader.readPemObject();
byte[] publicKeyByte = objPub.getContent();

Générer une cible de clé publique X509EncodedKeySpec x509 = new X509EncodedKeySpec(encodedByte);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
RSAPublicKey rsaPublicKey = (RSAPublicKey) keyFactory.generatePublic(x509);

S'authentifier avec la cible de clé publique Signature verifier = Signature.getInstance("SHA256withRSA");
verifier.initVerify(rsaPublicKey);
verifier.update(message.getBytes("UTF-8"));
byte [] messageByte = Hex.decodeHex (message signé ci-dessus (au format hexadécimal)); boolean result = verifier.verify(messageByte);

Recommended Posts

À propos de l'authentification par signature avec Java Time 1
Authentification de base avec Java 11 HttpClient
En savoir plus sur les points de sauvegarde des transactions (avec Java)
À propos de l'interface Java
[Java] À propos des fonctionnalités de Java 12
[Java] À propos des tableaux
Quelque chose à propos de java
Où est Java
À propos des fonctionnalités Java
À propos des threads Java
Interface [Java]
À propos de la classe Java
À propos des tableaux Java
À propos de l'héritage Java
À propos de l'interface, interface java
À propos de Java Var
À propos de Java Literal
À propos des commandes Java
J'ai essayé de faire une authentification de base avec Java
À propos de la sortie du journal Java
À propos de l'interface fonctionnelle Java
Installez java avec Homebrew
Java, à propos d'un tableau à deux dimensions
À propos de la division de classe (Java)
À propos de l'authentification Spring Security
À propos de [Java] [StreamAPI] allMatch ()
À propos de la classe Java StringBuilder
Changer de siège avec Java
Installez Java avec Ansible
[Java] À propos de la classe Singleton
À propos de la liaison de méthode Java
Téléchargement confortable avec JAVA
[Java] À propos des classes anonymes
[Java Silver] À propos de l'initialisation
Changer java avec direnv
A propos de la liste des baies Java
À propos du polymorphisme Java Super ()
À propos de l'héritage (Java Silver)
À propos de la classe Java String
À propos des modificateurs d'accès Java
Téléchargement Java avec Ansible
À propos des expressions Java lambda
À propos des points d'entrée Java
Prise en charge de Java 10 Docker
Résumé personnel sur Java
Raclons avec Java! !!
Une histoire sur le développement de ROS appelé rosjava avec java
Tout sur la programmation Java
Construire Java avec Wercker
À propos de la classe abstraite de Java
Conversion Endian avec JAVA
À propos du comportement lors de la création d'un mappage de fichiers avec Java
(Java) BDD facile avec Spectrum?
Utiliser des couches Lambda avec Java
Créer un multi-projet Java avec Gradle
Premiers pas avec Java Collection
Ce que j'ai recherché sur Java 8
À propos des instances Java
Configuration Java avec Spring MVC