資源簡介
一個C++ 寫的用戶權限管理模塊,可以實現用戶權限的定制,權限監測、用戶的增刪改查,不使用數據庫,所有信息都是用DES加密寫入用戶信息文件中。防信息篡改

代碼片段和文件信息
#include?“StdAfx.h“
#include?“UserInfo.h“
#include?“hl_md5wrapper.h“
CUser::CUser(const?std::string&?user_nameconst?std::string&?user_pass)
{
//默認普通用戶
m_userId=0;
m_crcValue=0;
m_userState=us_New;
m_parentUserId=0;
memset(m_userName0USER_NAME_BYTE_LEN);
memset(m_passWord0PASSWORD_MD5_BYTE_LEN);
memset(m_priviBits0_ByteSize);
setUserName(user_name);
setUserPassword(user_pass);
}
CUser::CUser()
{
????m_userId=0;
m_crcValue=0;
m_parentUserId=0;
m_userState=us_Null;
memset(m_userName0USER_NAME_BYTE_LEN);
memset(m_passWord0PASSWORD_MD5_BYTE_LEN);
memset(m_priviBits0_ByteSize);
}
CUser::CUser(const?CUser&?cu)
{
m_userId=cu.m_userId;
m_parentUserId=cu.m_parentUserId;
strncpy(m_userNamecu.m_userNameUSER_NAME_BYTE_LEN);
strncpy((char*)m_passWord(char*)cu.m_passWordPASSWORD_MD5_BYTE_LEN);
strncpy(m_priviBitscu.m_priviBits_ByteSize);
m_crcValue=cu.m_crcValue;
m_userState=us_Clone;
}
const?CUser&??CUser::operator=(const?CUser&?user)
{
m_userId=user.m_userId;
m_parentUserId=user.m_parentUserId;
strncpy(m_userNameuser.m_userNameUSER_NAME_BYTE_LEN);
strncpy((char*)m_passWord(char*)user.m_passWordPASSWORD_MD5_BYTE_LEN);
strncpy(m_priviBitsuser.m_priviBits_ByteSize);
m_crcValue=user.m_crcValue;
m_userState=us_Clone;
return?*this;
}
//獲取用戶名
std::string?CUser::getUserName()?const
{
return?std::string(m_userName);
}
void?CUser::setUserName(const?std::string&?user_name)
{
memset(m_userName0USER_NAME_BYTE_LEN);
//如果用戶設定名稱大于系統最大值,將會按最大值進行截取字符串
if?(user_name.length()>=USER_NAME_BYTE_LEN)
strncpy(m_userNameuser_name.c_str()USER_NAME_BYTE_LEN-1);
else
strncpy(m_userNameuser_name.c_str()user_name.length());
}
//獲取用戶id,每個用戶具有一個唯一的大于0的數值id
std::size_t?CUser::getUserId()?const
{
return?m_userId;
}
//獲取父用戶id,
std::size_t?CUser::getParentUserId()?const
{
return?m_parentUserId;
}
//測試本用戶是否擁有制定的權限,如果有返回true,否則返回false
bool?CUser::testPrivilege(PR_ID?pr_id)?const
{
if?(pr_id<0?||?pr_id?>=PR_ID::PR_SIZE_END)
??????return?false;
else
??return?((m_priviBits[pr_id/8]&((char)1?<}
//設定用戶擁有指定權限
bool?CUser::setPrivilege(PR_ID?pr_id)
{
if?(pr_id>=0?&&?pr_id {
??????m_priviBits[pr_id?/?8]?|=((char)1< ??return?true;
}
else
return?false;
}
//清除用戶指定的權限
void?CUser::clearPrivilege(PR_ID?pr_id)
{
if?(pr_id>=0?&&?pr_id m_priviBits[pr_id?/?8]?&=?~((char)1< }
//清除用戶所有的權限
void?CUser::clearAllPrivilege()
{
???memset(m_priviBits0_ByteSize);
}
//驗證用戶密碼,如果密碼正確返回true,否則false
bool?CUser::checkUserPassword(const?std::string?&?user_pass)?const
{
??md5wrapper?rap;
??const?MD5_DIGEST_TYPE&?digest=rap.getHashDigestFromString(user_pass);
??return?digest==m_passWord;
}
//從指定用戶復制權限
void?CUser::cloneUserPrivilege(const?CUser&?user)
{
???strncpy(m_priviBitsuser.m_priviBits_ByteSize);
}
//設定用戶密碼????如果寬字符如何處理
void??CUser::setUserPassw
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????14825??2001-03-05?06:24??CPP_USERMANAGER\lib\des\block.cpp
?????文件???????6671??2001-03-05?06:23??CPP_USERMANAGER\lib\des\block.hpp
?????文件???????7500??2001-03-05?06:24??CPP_USERMANAGER\lib\des\des.cpp
?????文件???????3762??2001-03-05?06:23??CPP_USERMANAGER\lib\des\des.hpp
?????文件???????2390??2001-03-05?06:24??CPP_USERMANAGER\lib\des\dessboxes.hpp
?????文件???????5147??2001-03-05?06:23??CPP_USERMANAGER\lib\des\globals.hpp
?????文件????????759??2010-01-12?20:58??CPP_USERMANAGER\lib\des\說明.txt
?????目錄??????????0??2010-08-07?08:48??CPP_USERMANAGER\lib\des
?????文件???????7666??2010-01-12?21:01??CPP_USERMANAGER\lib\DES加密算法(c++).rar
?????文件???????3124??2008-01-09?15:49??CPP_USERMANAGER\lib\md5\hl_exception.h
?????文件??????13281??2008-02-02?17:34??CPP_USERMANAGER\lib\md5\hl_md5.cpp
?????文件???????6685??2008-02-02?17:34??CPP_USERMANAGER\lib\md5\hl_md5.h
?????文件???????7050??2010-01-01?11:22??CPP_USERMANAGER\lib\md5\hl_md5wrapper.cpp
?????文件???????5754??2010-01-01?11:34??CPP_USERMANAGER\lib\md5\hl_md5wrapper.h
?????文件???????2297??2008-02-02?17:55??CPP_USERMANAGER\lib\md5\hl_types.h
?????目錄??????????0??2010-08-07?08:48??CPP_USERMANAGER\lib\md5
?????目錄??????????0??2010-08-07?08:48??CPP_USERMANAGER\lib
?????文件????????624??2010-01-23?15:09??CPP_USERMANAGER\security\secu.data
?????文件????????624??2010-01-10?11:33??CPP_USERMANAGER\security\secu.data.bak
?????目錄??????????0??2010-01-23?15:04??CPP_USERMANAGER\security
?????文件???????4014??2010-01-19?20:58??CPP_USERMANAGER\UserInfo.cpp
?????文件???????3970??2010-01-19?21:00??CPP_USERMANAGER\UserInfo.h
?????文件??????12222??2010-02-06?12:45??CPP_USERMANAGER\UserManager.cpp
?????文件???????4665??2010-01-19?21:24??CPP_USERMANAGER\UserManager.h
?????文件????????940??2010-01-19?21:00??CPP_USERMANAGER\UserPrivilegeConfig.cpp
?????文件???????1333??2010-01-19?21:25??CPP_USERMANAGER\UserPrivilegeConfig.h
?????文件????????551??2010-08-07?09:28??CPP_USERMANAGER\使用說明.txt
?????目錄??????????0??2010-08-07?08:52??CPP_USERMANAGER
-----------?---------??----------?-----??----
???????????????115854????????????????????28
............此處省略1個文件信息
- 上一篇:AES算法的C語言版本
- 下一篇:C++面試題常見問題
評論
共有 條評論