Mit Java verschlüsseln und mit C # entschlüsseln

Code, der mit Java verschlüsselt, um einen Mechanismus zu erstellen, der die auf der Java-Seite verschlüsselte Zeichenfolge für die Authentifizierung von Android auf Java und den API-Server auf .NET entschlüsselt und die Authentifizierungsverarbeitung auf der .NET-Seite durchführt Ich habe einen Code zum Entschlüsseln mit C # erstellt.

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

Mit Java verschlüsseln und mit C # entschlüsseln
Verschlüsseln / Entschlüsseln mit AES256 in PHP und Java
Verknüpfen Sie Java- und C ++ - Code mit SWIG
C # und Java überschreiben Story
Lösen mit Ruby, Perl und Java AtCoder ABC 128 C.
Verwenden Sie Java mit MSYS und Cygwin
Verteilte Ablaufverfolgung mit OpenCensus und Java
Installieren Sie Java und Tomcat mit Ansible
Verwenden Sie JDBC mit Java und Scala.
Kotlin Post- und Pre-Inkrement und Operatorüberladung (Vergleich mit C, Java, C ++)
Lösen mit Ruby, Perl und Java AtCoder ABC 129 C (Teil 1)
Rufen Sie die Java-Bibliothek von C mit JNI auf
Probieren wir WebSocket mit Java und Javascript aus!
HTTPS mit Spring Boot und Let's Encrypt
Von Java nach C und von C nach Java in Android Studio
Java und JavaScript
XXE und Java
Lösen mit Ruby, Perl und Java AtCoder ABC 129 C (Teil 2) Dynamische Planungsmethode
So erstellen Sie eine App mit einem Plug-In-Mechanismus [C # und Java]
Erstellen und testen Sie Java + Gradle-Anwendungen mit Wercker
Versuchen Sie, Ruby und Java in Dapr zu integrieren
Ich habe auch Web Assembly mit Nim und C ausprobiert
Fassen Sie die Unterschiede zwischen C # - und Java-Schrift zusammen
Bereiten Sie eine Scraping-Umgebung mit Docker und Java vor
KMS) Umschlagverschlüsselung mit OpenSL- und Java-Entschlüsselung
[Java] Konvertieren und Importieren von Dateiwerten mit OpenCSV
[Review] Lesen und Schreiben von Dateien mit Java (JDK6)
[Java] Richten Sie Zeichen auch mit gemischten Zeichen halber und voller Breite aus
Installieren Sie Java mit Homebrew
Verwenden Sie die schnelle Mapping-Bibliothek MapStruct mit Lombok und Java 11
Getter und Setter (Java)
Wechseln Sie die Plätze mit Java
AtCoder ABC129 D 2D-Array In Ruby und Java gelöst
[Java] Thread und ausführbar
Zusammenfassung des ToString-Verhaltens mit Java- und Groovy-Annotationen
Führen Sie Maven unter Java 8 aus, während Sie unter Java 6 kompilieren und unter Java 11 testen
Java wahr und falsch
[Java] Vergleich von Zeichenketten und && und ||
[Java] Verschlüsselung mit AES-Verschlüsselung mit Standardbibliothek
Bequemer Download mit JAVA
[Java] Verweisen Sie auf und setzen Sie private Variablen mit Reflektion
Schalten Sie Java mit direnv
Java - Serialisierung und Deserialisierung
[Java] Argumente und Parameter
Java-Download mit Ansible
Ich möchte Bildschirmübergänge mit Kotlin und Java machen!
timedatectl und Java TimeZone
[Java] Verzweigen und Wiederholen
Bereiten Sie die Umgebung für Java11 und JavaFx mit Ubuntu 18.4 vor
Lass uns mit Java kratzen! !!
Gesichtserkennungs-App mit Amazon Rekognition und Java
Erstellen Sie Java mit Wercker
Java (Klasse und Instanz)
[Java] Entwicklung mit mehreren Dateien mittels Paket und Import
Serverloses Java EE beginnend mit Quarkus und Cloud Run
[Java] Überladen und überschreiben
Endian-Konvertierung mit JAVA
In Java 2D-Karte speichern und mit for-Anweisung drehen
Lösen mit Ruby, Perl und Java AtCoder ABC 113 C Referenz
Suchen Sie die Adressklasse und den Adresstyp aus der IP-Adresse mit Java