public void TestDecoding4() { //10011111 10100111 00111000 01100101 01110010 01000100 10001000 00011001 11101100 var s = Base32StringCoding.Decode(new byte[] { 0x9f, 0xa7, 0x38, 0x65, 0x72, 0x44, 0x88, 0x19, 0xEC }); Assert.AreEqual("2fqee35e928g6fc", s); }
public string SerializeToString() { var s = string.Format("{0}\n{1}\n{2}", UserId, Guid, Mode); var bs = Encoding.UTF8.GetBytes(s); return(Base32StringCoding.Decode(bs)); }
public void TestDecoding0() { //01110010 01000100 10001000 00011001 11101100 var s = Base32StringCoding.Decode(new byte[] { 0x72, 0x44, 0x88, 0x19, 0xEC }); Assert.AreEqual("e928g6fc", s); }
public static string GetHashedPassword(string password) { var bytes = Hash.ComputeHash(Encoding.UTF8.GetBytes(password)); var ret = Base32StringCoding.Decode(bytes); return(ret); }
protected static string GenIndexName(string n, int maxLength) { if (string.IsNullOrEmpty(n)) { var bytes = Util.NewGuid().ToByteArray(); var s = Base32StringCoding.Decode(bytes); return(s); } return(GenIdentityName(n, maxLength)); }
public static string SerializeToString(string sessionId) { if (sessionId == null) { return(null); } var bs = Encoding.UTF8.GetBytes(sessionId); return(Base32StringCoding.Decode(bs)); }
protected static string GenIdentityName(string n, int maxLength) { if (string.IsNullOrEmpty(n)) { throw new DataException("Identity name could not be null or empty"); } if (n.Length > maxLength) { var bytes = StringHelper.HashMd5(n); var s = Base32StringCoding.Decode(bytes); return(s); } return(null); }
private void RegError(string msg, DateTime now) { Flash.Warning = msg; var t = now.Ticks.ToString(); var x = t.Substring(0, BlogSettings.RegTimeXbits); var t2 = int.Parse(t.Substring(BlogSettings.RegTimeXbits)); var z = Rand.Next(BlogSettings.RegTimeRandMax); var y = t2 - z; this["RegTimeX"] = x; this["RegTimeY"] = y.ToString(); this["RegTimeZ"] = z.ToString(); this["RegValidate"] = Base32StringCoding.Decode(StringHelper.HashMd5(BlogSettings.RegSolt + t)); }
public static string ToBase32String(this Guid guid) { var bs = guid.ToByteArray(); return(Base32StringCoding.Decode(bs)); }
public string Register() { var now = DateTime.Now; if (!BlogSettings.AllowRegister) { RegError("暂时不允许注册", now); return(null); } var email = Bind("email"); var password = Bind("password"); var showname = Bind("showname"); var time = Bind("time"); var validate = Bind("validate"); long ticks; if (email.LikeNull() || password.LikeNull() || showname.LikeNull() || email.IndexOf("@") < 0 || !long.TryParse(time, out ticks) || validate.LikeNull()) { RegError("Email密码以及显示名都是必填项", now); return(null); } var regTime = new DateTime(ticks); if (Math.Abs((now - regTime).TotalSeconds) > BlogSettings.RegTimeDiffSecs) { RegError("注册超时,请刷新后重新注册", now); return(null); } var realValidate = Base32StringCoding.Decode(StringHelper.HashMd5(BlogSettings.RegSolt + time)); if (validate != realValidate) { Logger.Default.Trace("validate: " + validate + " - realValidate: " + realValidate + " - time: " + time); RegError("注册错误,请联系管理员", now); return(null); } if (password.Length >= 100) { return(null); } var u = new User { Email = email, Password = password, ShowName = showname, Role = UserRole.NonactivatedUser, SessionId = Guid.NewGuid().ToString() }; var v = u.Validate(); if (v.IsValid) { u.Save(); var uv = new UserValidate().Init(u.Id); uv.Mode = 'a'; uv.Save(); SendMail(u, uv); Flash.Notice = "用户创建成功"; return(UrlTo <UserController>(p => p.Login())); } var sb = new StringBuilder(); foreach (var message in v.ErrorMessages) { sb.Append(message); } RegError(sb.ToString(), now); return(null); }