主要实现播放路径 加密
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; } }