using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Sog.Crypto { /// /// tea密钥生成器 /// public class TeaKeyGenerator : Singleton { Random m_random; object m_locker = new object(); public TeaKeyGenerator() { m_random = new Random((int)DateTime.Now.Ticks); } //先简单点,随机 public byte[] GenerateNew() { //tea,xtea,xxtea的key是128bit,4个int,16byte byte[] key = new byte[16]; //保证多线程安全 lock (m_locker) { m_random.NextBytes(key); for (int i = 0; i < key.Length; i++) { while (key[i] == 0) { key[i] = (byte)m_random.Next(256); } } } return key; } public SogFastXTEAKey GenerateFastXTEAKey() { byte[] keyBytes = GenerateNew(); return new SogFastXTEAKey(keyBytes); } } }