主要实现播放路径 加密
AS3.0
import com.hurlant.crypto.symmetric.CBCMode;
import com.hurlant.crypto.symmetric.DESKey;
//String转ByteArray函数
public function convertStringToByteArray(str:String):ByteArray
{
var bytes:ByteArray;
if (str)
{
bytes=new ByteArray();
bytes.writeUTFBytes(str);
}
return bytes;
}
//ByteArray转String
public function convertByteArrayToString(bytes:ByteArray):String
{
var str:String;
if (bytes)
{
bytes.position = 0;
str = bytes.readUTFBytes(bytes.length);
}
return str;
}
var strkey:String = 'aliketen';
var striv:String = 'startrun';
var key:ByteArray = new ByteArray();
key.writeUTFBytes(strkey);
var iv:ByteArray= new ByteArray();
iv.writeUTFBytes(striv);
var des:DESKey = new DESKey(key);
var cbc:CBCMode = new CBCMode(des);
cbc.IV = iv;
var AByteArray:ByteArray = convertStringToByteArray("/upload/test.flv");
cbc.encrypt(AByteArray);
var pathA:String = Base64.encodeByteArray(AByteArray);
trace("路径加密: "+pathA);
var BByteArray:ByteArray = Base64.decodeToByteArray("EyZUZnQXeuAVRsL7FsYzB23tLUgcN9NT");
cbc.decrypt(BByteArray);
var pathB:String = convertByteArrayToString(BByteArray);
trace("路径解密: "+ pathB);
c#
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
/// <summary>
/// 标准的DES加密
/// </summary>
public static string EncryptString(string source, string key ,string iv)
{
try
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
Byte[] sourcebyte = Encoding.ASCII.GetBytes(source);
Byte[] keybyte = Encoding.ASCII.GetBytes(key);
Byte[] ivbyte = Encoding.ASCII.GetBytes(iv);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(keybyte, ivbyte), CryptoStreamMode.Write);
cs.Write(sourcebyte, 0, sourcebyte.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
catch (Exception ex)
{
return ex.Message;
}
}
/// <summary>
/// 标准的DES解密
/// </summary>
public static string DecryptString(string source, string key, string iv)
{
Byte[] sourcebyte = new byte[source.Length];
try
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
sourcebyte = Convert.FromBase64String(source);
Byte[] keybyte = Encoding.ASCII.GetBytes(key);
Byte[] ivbyte = Encoding.ASCII.GetBytes(iv);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(keybyte, ivbyte), CryptoStreamMode.Write);
cs.Write(sourcebyte, 0, sourcebyte.Length);
cs.FlushFinalBlock();
System.Text.Encoding encoding = System.Text.Encoding.UTF8;
return encoding.GetString(ms.ToArray());
}
catch (Exception ex)
{
return ex.Message;
}
}