簡體   English   中英

加密字符串AES Windows Phone 8.1

[英]Encrypt String AES Windows Phone 8.1

我正在制作一個需要加密字符串的應用程序。 我是AES加密的新手。

我必須對在服務器上運行的代碼進行加密。

public static string Encrypt(string text, byte[] key, byte[] iv, int keysize = 128, int blocksize = 128, CipherMode cipher = CipherMode.CBC, PaddingMode padding = PaddingMode.PKCS7)
{
    AesCryptoServiceProvider aes = new AesCryptoServiceProvider();
    aes.BlockSize = blocksize;
    aes.KeySize = keysize;
    aes.Mode = cipher;
    aes.Padding = padding;

    byte[] src = Encoding.UTF8.GetBytes(text);
    using (ICryptoTransform encrypt = aes.CreateEncryptor(key, iv))
    {
        byte[] dest = encrypt.TransformFinalBlock(src, 0, src.Length);
        encrypt.Dispose();
        return Convert.ToBase64String(dest);
    }
}

我已經有了圖書館Bouncy Castle,但我似乎找不到一個簡單的例子。

byte[] key = Encoding.UTF8.GetBytes("[SECRETKEY]");
            byte[] iv = Encoding.UTF8.GetBytes("[IV]");
            var cipher = CipherUtilities.GetCipher("AES/CBC/PKCS7Padding");

            cipher.Init(true, new KeyParameter(key));

如果有幫助的話,我也有運行Android客戶端的代碼。 讓我知道,然后我可以發布它。

您可以使用PCLCrypto庫,有一個可用的nuget軟件包(Install-Package PclCrypto)

https://github.com/AArnott/PCLCrypto/wiki/Crypto-Recipes

執行AES加密/解密

byte[] keyMaterial;
byte[] data;
var provider = WinRTCrypto.SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithm.AesCbcPkcs7);
var key = provider.CreateSymmetricKey(keyMaterial);
byte[] iv = null; // this is optional, but must be the same for both encrypting and decrypting
byte[] cipherText = WinRTCrypto.CryptographicEngine.Encrypt(key, data, iv);
byte[] plainText = WinRTCrypto.CryptographicEngine.Decrypt(key, cipherText, iv);

cipherText變量是加密的數據,plainText是再次解密的加密變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM