C++简单加解密

本文介绍了在C++项目中如何实现简单的用户密码加密,确保原始字母和数字不直接出现在加密后的结果中,以增强数据安全性。
摘要由CSDN通过智能技术生成

最近做个C++小项目,其中的用户名、密码要求加密,要求原字母、数字不会重现就行。

//Password.h文件
CString Base64Encode(LPCTSTR lpszSrc);//加密
CString Base64Decode(LPCTSTR lpszSrc);//解密
//Password.cpp文件
CString Base64Encode(LPCTSTR lpszSrc)
{
    ASSERT(lpszSrc != NULL && AfxIsValidString(lpszSrc));
    const char BASE64_ENCODE_TABLE[64] = {
        65, 66, 67, 68, 69, 70, 71, 72,  // 00 - 07
        73, 74, 75, 76, 77, 78, 79, 80,  // 08 - 15
        81, 82, 83, 84, 85, 86, 87, 88,  // 16 - 23
        89, 90, 97, 98, 99, 100, 101, 102,  // 24 - 31
        103, 104, 105, 106, 107, 108, 109, 110,  // 32 - 39
        111, 112, 113, 114, 115, 116, 117, 118,  // 40 - 47
        119, 120, 121, 122, 48, 49, 50, 51,  // 48 - 55
        52, 53, 54, 55, 56, 57, 43, 47 };// 56 - 63

    unsigned int iTest;

    LPCTSTR pInBuffer = lpszSrc;

    int nSize = (int)_tcslen(lpszSrc);
    char* pOutBuffer = new char[nSize / 3 * 4 + 5];
    ZeroMemory(pOutBuffer, nSize / 3 * 4 + 5);

    for (int i = 0; i < nSize / 3; i++)
    {
        iTest = (unsigned char)*pInBuffer++;
        iTest = iTest << 8;

        iTest = iTest | (unsigned char)*pInBuffer++;
        iTest = iTest << 8;

        iTest = iTest | (unsigned char)*pInBuffer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值