一、愷撒加密可以點擊進行學習;
二、AES加密:
private static string KEY = "123456_abcdeABCD";
private static string IV = "123456_abcdeABCD";
private IEnumerator AES_EncryptionAB()
{
WWW www = new WWW("file:///" + Application.dataPath + "/../BuildAssetBundle\\Window\\myab");
yield return www;
if (www.isDone)
{
if (www.error == null)
{
byte[] bytes = www.bytes;
byte[] key = Encoding.UTF8.GetBytes(KEY);
byte[] iv = Encoding.UTF8.GetBytes(IV);
Aes aes = Aes.Create();
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, aes.CreateEncryptor(key, iv), CryptoStreamMode.Write);
cryptoStream.Write(bytes, 0, bytes.Length);
cryptoStream.FlushFinalBlock();
File.WriteAllBytes(Application.dataPath + "/../BuildAssetBundle\\Window\\myab_AES_Encryption.assetbundle", memoryStream.ToArray());
}
}
}
三、AES解密:
private IEnumerator AES_DncryptionAB()
{
WWW www = new WWW("file:///" + Application.dataPath + "/../BuildAssetBundle\\Window\\myab_AES_Encryption.assetbundle");
yield return www;
if (www.isDone)
{
if (www.error == null)
{
byte[] bytes = www.bytes;
byte[] key = Encoding.UTF8.GetBytes(KEY);
byte[] iv = Encoding.UTF8.GetBytes(IV);
Aes aes = Aes.Create();
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, aes.CreateDecryptor(key, iv), CryptoStreamMode.Write);
cryptoStream.Write(bytes, 0, bytes.Length);
cryptoStream.FlushFinalBlock();
AssetBundle ab = AssetBundle.LoadFromMemory(memoryStream.ToArray());
GameObject go = ab.LoadAsset("Sphere") as GameObject;
Instantiate(go, Vector3.zero, Quaternion.identity);
ab.Unload(false);
}
}
}
四、資源鏈接:https://download.csdn.net/download/weixin_39766005/12104160