/// <summary> /// 加密 /// </summary> /// <param name="data">要加密的字符串</param> /// <param name="key">密钥</param> /// <returns></returns> public static string XxTeaEncrypt(string data, string key) { try { if (data.Length == 0) { throw new ArgumentException("Data must be at least 1 characater in length."); } uint[] k = FormatKey(key); if ((data.Length % 8) != 0) { int num6 = (8 - (data.Length % 8)) - 1; for (int j = 0; j <= num6; j++) { data = data + "\0"; } } //增加的 else { for (int j = 0; j <= 7; j++) { data = data + "\0"; } } ArrayList list = new ArrayList(data.Length); list.AddRange(Encoding.Unicode.GetBytes(data)); string str = ""; uint[] v = new uint[3]; byte[] buffer = new byte[5]; int num5 = list.Count - 1; for (int i = 0; i <= num5; i += 8) { int index = 0; do { buffer[index] = ByteType.FromObject(list[i + index]); index++; }while (index <= 3); v[0] = BitConverter.ToUInt32(buffer, 0); int num4 = 0; do { buffer[num4] = ByteType.FromObject(list[(i + 4) + num4]); num4++; }while (num4 <= 3); v[1] = BitConverter.ToUInt32(buffer, 0); code(v, k); str = str + ConvertUintToHexString(v[0]) + ConvertUintToHexString(v[1]); } return(str.ToString()); } catch (Exception) { //return "加密失败:"+ex.Message; return(string.Empty); } }
public static String Oct(Object Number) { if (Number == null) { throw new ArgumentNullException("Number"); } switch (ObjectType.GetTypeCode(Number)) { case TypeCode.Byte: return(Oct(ByteType.FromObject(Number))); case TypeCode.Int16: return(Oct(ShortType.FromObject(Number))); case TypeCode.Boolean: case TypeCode.Char: case TypeCode.SByte: case TypeCode.UInt16: case TypeCode.Int32: return(Oct(IntegerType.FromObject(Number))); case TypeCode.Int64: return(Oct(LongType.FromObject(Number))); case TypeCode.UInt32: case TypeCode.UInt64: case TypeCode.Single: case TypeCode.Double: case TypeCode.Decimal: return(Oct(LongType.FromObject(Number))); case TypeCode.String: return(Oct(LongType.FromString (StringType.FromObject(Number)))); } throw new ArgumentException(S._("VB_InvalidNumber"), "Number"); }
public void FromObject_ThrowsOverflowException(object value) { Assert.Throws <OverflowException>(() => ByteType.FromObject(value)); }
public void FromObject_ThrowsInvalidCastException(object value) { Assert.Throws <InvalidCastException>(() => ByteType.FromObject(value)); }
public void FromObject_NotSupported(object value, byte expected) { Assert.Throws <InvalidCastException>(() => ByteType.FromObject(value)); }
public void FromObject(object value, byte expected) { Assert.Equal(expected, ByteType.FromObject(value)); }
// Inner version of "Print" and "Write". private static void Print(File file, Object[] Output, CultureInfo culture, bool print) { NumberFormatInfo nfi = culture.NumberFormat; if (Output == null) { return; } bool first = true; foreach (Object obj in Output) { if (!first && !print) { file.Write(","); } else { first = false; } if (obj == null) { if (!print) { file.Write("#NULL#"); } continue; } if (obj is TabInfo) { file.Tab((TabInfo)obj); continue; } else if (obj is SpcInfo) { file.Space((SpcInfo)obj); continue; } else if (obj is char[]) { file.Write(new String((char[])obj)); continue; } else if (obj is ErrObject) { if (print) { file.Write(String.Format("Error {0}", ((ErrObject)obj).Number)); } else { file.Write(String.Format("#ERROR {0}#", ((ErrObject)obj).Number)); } continue; } switch (ObjectType.GetTypeCode(obj)) { case TypeCode.DBNull: { if (print) { file.Write("Null"); } else { file.Write("#NULL#"); } } break; case TypeCode.Boolean: { bool b = BooleanType.FromObject(obj); if (print) { file.Write(b.ToString(culture)); } else if (b) { file.Write("#TRUE#"); } else { file.Write("#FALSE#"); } } break; case TypeCode.Byte: { byte by = ByteType.FromObject(obj); file.Write(by.ToString(nfi)); } break; case TypeCode.Int16: { short s = ShortType.FromObject(obj); file.Write(s.ToString(nfi)); } break; case TypeCode.Int32: { int i = IntegerType.FromObject(obj); file.Write(i.ToString(nfi)); } break; case TypeCode.Int64: { long l = LongType.FromObject(obj); file.Write(l.ToString(nfi)); } break; case TypeCode.Single: { float f = SingleType.FromObject(obj, nfi); file.Write(f.ToString(nfi)); } break; case TypeCode.Double: { double d = DoubleType.FromObject(obj, nfi); file.Write(d.ToString(nfi)); } break; case TypeCode.Decimal: { Decimal dc = DecimalType.FromObject(obj, nfi); file.Write(dc.ToString(nfi)); } break; case TypeCode.DateTime: { DateTime dt = DateType.FromObject(obj); if (print) { file.Write(StringType.FromDate(dt) + " "); } else { String format; long dayTicks = dt.Ticks % TimeSpan.TicksPerDay; if (dt.Ticks == dayTicks) { format = "T"; } else if (dayTicks == 0) { format = "d"; } else { format = "F"; } file.Write(dt.ToString (format, culture.DateTimeFormat)); } } break; case TypeCode.String: { file.Write(StringType.FromObject(obj)); } break; default: { Utils.ThrowException(5); // ArgumentException. } break; } } }