Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
 /// <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);
     }
 }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
 /// <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);
     }
 }
Exemple #6
0
        /// <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);
        }