/// <summary> /// 更新用户信息,并对用户密码加密 /// </summary> /// <param name="us"></param> /// <returns></returns> public bool updateandencrypt(user us) { bool flag = false; user olduser = getEntityById(us.id); List <user> userlist = getEntityList(); flag = isdeleterepeatuser(userlist, olduser, us); TanSM3Ex sm3 = new TanSM3Ex(); user uuser = getEntityById(us.id); try { if (uuser.password == us.password) { us.password = uuser.password; } else { us.password = sm3.TanGetDigest(us.password); } if (flag) { this.update(us); } //flag = true; } catch (Exception) { return(false); } return(flag); }
/// <summary> /// 检查用户口令 /// </summary> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> public bool checkPassword(string username, string password) { bool flag = false; TanSM3Ex sm3 = new TanSM3Ex(); string digest = sm3.TanGetDigest(password); string cipher = getPasswordCipher(username); if (digest == cipher) { flag = true; } else { flag = false; } return(flag); }
/// <summary> /// 重置密码 /// </summary> /// <param name="userId">用户id</param> /// <param name="newPassword">新密码</param> /// <returns></returns> public bool RevisePassword(int userId, string newPassword) { try { user u = getEntityById(userId); TanSM3Ex sm3 = new TanSM3Ex(); string digest = sm3.TanGetDigest(newPassword); if (u.password != digest) { u.password = digest; } db.Update <user>(u); return(true); } catch (Exception) { return(false); } }
/// <summary> /// 设置用户公钥私钥 /// </summary> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> private user SetUserKey(string username, string password) { TanSM3Ex sm3 = new TanSM3Ex(); string digest = sm3.TanGetDigest(password); TanSM2Ex sm2 = new TanSM2Ex(); sm2.TanGenSM2KeyPair(); string pubkey = sm2.publicKey; string prvkey = sm2.privateKey; user u = getUser(username); if (u == null) { u = new user(); } u.username = username; u.password = digest; u.pubkey = pubkey; u.prikey = prvkey; return(u); }
/// <summary> /// 新增用户并对密码进行加密 /// </summary> /// <param name="u">用户实例</param> /// <returns></returns> public int insertuser(user u) { try { if (isLegalUsername(u.username)) { TanSM3Ex sm3 = new TanSM3Ex(); string digest = sm3.TanGetDigest(u.password); u.password = digest; return(db.Insert <user>(u).ObjToInt()); } else { return(-1); } } catch (Exception) { return(-1); } }
/// <summary> /// 设置用户公钥私钥并重置密码 /// </summary> /// <param name="id">用户id</param> /// <param name="password">用户密码</param> /// <returns></returns> public user SetUserKey(string password, string id) { TanSM3Ex sm3 = new TanSM3Ex(); string digest = sm3.TanGetDigest(password); TanSM2Ex sm2 = new TanSM2Ex(); sm2.TanGenSM2KeyPair(); string pubkey = sm2.publicKey; string prvkey = sm2.privateKey; user u = getEntityById(Convert.ToInt32(id)); if (u.password != digest) { u.password = digest; } if (u == null) { u = new user() as user; } u.pubkey = pubkey; u.prikey = prvkey; return(u as user); }