0

私は次の JAVA を持っており、ChillKat (または BouncyCastle) を使用して C# に変換しようとしています。ChillKat で動作するバージョンを持っていますが、検証方法がわかりません。JAVA コードは次のとおりです。

private SecretKey symmKey = null;
public String encrypt(String strToEncrypt) throws  Exception
 {

     String symmEncryptMode = "DESede";
     String encString= null;

     KeyGenerator keyGen = KeyGenerator.getInstance(symmEncryptMode);
     symmKey = keyGen.generateKey();

     byte dataToEncrypt[] = strToEncrypt.getBytes();
     Cipher symmCipher = Cipher.getInstance(symmEncryptMode);
     symmCipher.init(Cipher.ENCRYPT_MODE, symmKey);
     byte[] encrypted  = symmCipher.doFinal(dataToEncrypt);
     encString= new String(Base64.encode(encrypted));
     encString = URLEncoder.encode(encString, "UTF-8");
     return(encString);
} //end method create Signature

これが私がこれまでに持っているものです(値を返しますが、これは暗号化プロセスの3つのステップの1つであるため、検証方法がわかりません-ステップ3は機能し、1と2は疑わしいので、私は一度に 1 つずつ聞いてください...) これは ChilKat を使用して値を返しますが、それが正しいかどうかはわかりません。

  private static string EncryptStringSymmetric(string data2Encrypt, ref string passKey)
        {
            //Init Encryptor
            Crypt2 encryptor = new Crypt2();
            bool success = encryptor.UnlockComponent("Anything for 30 - day trial");
            if (success != true)
            { throw (new Exception("Crypt component unlock failed")); }

            //Encryptor Settings
            encryptor.CryptAlgorithm = "3des";
            encryptor.KeyLength = 192;
            encryptor.EncodingMode = "base64";
            encryptor.PaddingScheme = 0;
            encryptor.Charset = "utf-8";
            encryptor.CipherMode = "ecb";
            encryptor.RandomizeKey();
            passKey = encryptor.GetEncodedKey("base64");

            string eStr;

            //byte[] bytesToEncrypt = Encoding.ASCII.GetBytes(data2Encrypt);
            //eStr = encryptor.EncryptBytesENC(bytesToEncrypt);//??
            eStr = encryptor.EncryptStringENC(data2Encrypt);
            return eStr;
        }
4

0 に答える 0