Crypter avec Java et décrypter avec C #

Code qui crypte avec Java afin de créer un mécanisme qui décrypte la chaîne de caractères cryptée côté Java pour l'authentification d'Android fonctionnant sur Java et le serveur API fonctionnant sur .NET et effectue le traitement d'authentification côté .Net , J'ai fait un code pour déchiffrer avec C #.

Encrypt.java



    @TargetApi(Build.VERSION_CODES.O)
    @RequiresApi(api = Build.VERSION_CODES.O)
    public static String Encrypt(String text, String key)
            throws Exception {
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
        byte[] keyBytes= new byte[16];
        byte[] b= key.getBytes(StandardCharsets.UTF_8);
        int len= b.length;
        if (len > keyBytes.length) len = keyBytes.length;
        System.arraycopy(b, 0, keyBytes, 0, len);
        SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
        IvParameterSpec ivSpec = new IvParameterSpec(keyBytes);
        cipher.init(Cipher.ENCRYPT_MODE,keySpec,ivSpec);

        byte[] results = cipher.doFinal(text.getBytes(StandardCharsets.UTF_8));
        String result = Base64.getEncoder().encodeToString(results);
        return result;
    }
 

Decrypt.cs



       public static string Decrypt(string textToDecrypt, string key)
        {
            System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();

            RijndaelManaged rijndaelCipher = new RijndaelManaged();
            rijndaelCipher.Mode = CipherMode.CBC;
            rijndaelCipher.Padding = PaddingMode.PKCS7;

            rijndaelCipher.KeySize = 0x80;
            rijndaelCipher.BlockSize = 0x80;

            //string decodedUrl = HttpUtility.UrlDecode(textToDecrypt);
            byte[] encryptedData = Convert.FromBase64String(textToDecrypt);
            byte[] pwdBytes = Encoding.UTF8.GetBytes(key);
            byte[] keyBytes = new byte[0x10];
            int len = pwdBytes.Length;
            if (len > keyBytes.Length)
            {
                len = keyBytes.Length;
            }
            Array.Copy(pwdBytes, keyBytes, len);
            rijndaelCipher.Key = keyBytes;
            rijndaelCipher.IV = keyBytes;
            byte[] plainText = rijndaelCipher.CreateDecryptor().TransformFinalBlock(encryptedData, 0, encryptedData.Length);
            return encoding.GetString(plainText);
        }

Recommended Posts

Crypter avec Java et décrypter avec C #
Crypter / décrypter avec AES256 en PHP et Java
Lier le code Java et C ++ avec SWIG
Histoire de remplacement C # et Java
Résolution avec Ruby, Perl et Java AtCoder ABC 128 C
Utiliser java avec MSYS et Cygwin
Traçage distribué avec OpenCensus et Java
Installez Java et Tomcat avec Ansible
Utilisez JDBC avec Java et Scala.
Kotlin post- et pré-incrémentation et surcharge des opérateurs (comparaison avec C, Java, C ++)
Résolution avec Ruby, Perl et Java AtCoder ABC 129 C (Partie 1)
Appeler la bibliothèque Java à partir de C avec JNI
Essayons WebSocket avec Java et javascript!
HTTPS avec Spring Boot et Let's Encrypt
De Java à C et de C à Java dans Android Studio
Java et JavaScript
XXE et Java
Résolution avec Ruby, Perl et Java AtCoder ABC 129 C (Partie 2) Méthode de planification dynamique
Comment créer une application avec un mécanisme de plug-in [C # et Java]
Créez et testez des applications Java + Gradle avec Wercker
Essayez d'intégrer Ruby et Java avec Dapr
J'ai aussi essayé Web Assembly avec Nim et C
Résumer les différences entre l'écriture C # et Java
Préparer un environnement de scraping avec Docker et Java
KMS) Chiffrement d'enveloppe avec décryptage openssl et java
[Java] Convertir et importer des valeurs de fichier avec OpenCSV
[Review] Lecture et écriture de fichiers avec java (JDK6)
[Java] Aligne les caractères même avec des caractères mixtes demi-largeur et pleine largeur
Installez java avec Homebrew
Utilisez Fast Mapping Livery MapStruct avec Lombok et Java 11
Getter et Setter (Java)
Changer de siège avec Java
Tableau 2D AtCoder ABC129 D résolu en Ruby et Java
[Java] Thread et exécutable
Résumé du comportement de ToString avec les annotations Java et Groovy
Exécutez Maven sur Java 8 lors de la compilation sur Java 6 et des tests sur Java 11
Java vrai et faux
[Java] Comparaison des chaînes de caractères et && et ||
[Java] Comment chiffrer avec le chiffrement AES avec une bibliothèque standard
Téléchargement confortable avec JAVA
[Java] Se référer et définir des variables privées avec réflexion
Changer java avec direnv
Java - Sérialisation et désérialisation
[Java] Arguments et paramètres
Téléchargement Java avec Ansible
Je veux faire des transitions d'écran avec kotlin et java!
timedatectl et Java TimeZone
[Java] Branchement et répétition
Préparer l'environnement pour java11 et javaFx avec Ubuntu 18.4
Raclons avec Java! !!
Application de reconnaissance faciale conçue avec Amazon Rekognition et Java
Construire Java avec Wercker
java (classe et instance)
[Java] Développement avec plusieurs fichiers en utilisant package et import
Java EE sans serveur à partir de Quarkus et Cloud Run
[Java] Surcharge et remplacement
Conversion Endian avec JAVA
Stocker dans une carte Java 2D et tourner avec pour instruction
Résolution avec Ruby, Perl et Java AtCoder ABC 113 C Reference
Trouvez la classe d'adresse et le type d'adresse à partir de l'adresse IP avec Java