string EncryptionHandler::singleEncrypt(const string& msg)
{
    DES des;
    des.SetKey(DES_KEY, 8);
    des.ProduceSubKey();
    
    
    CC_ASSERT(msg.length() <= 8);
    char byte[8] = {0};
    for (int i = 0; i < msg.length(); i++)
    {
        byte[i] = msg.c_str()[i];
    }
    
    des.SetMsg(byte, 8);
    des.Crypte();
    
   // vector<char> cipher;
   // for (int i = 0; i < 8; i++)
   // {
   //     cipher.push_back(des.cryptedmsg[i]);
   // }
    
    string cipher(des.cryptedmsg, des.cryptedmsg + 8);
    return cipher;
}
string EncryptionHandler::singleDecrypt(const string& cryptedMsg)
{
    DES des;
    des.SetKey(DES_KEY, 8);
    des.ProduceSubKey();
    
    CC_ASSERT(cryptedMsg.size() <= 8);
    for (int i = 0; i < cryptedMsg.size(); i++)
    {
        des.cryptedmsg[i] = cryptedMsg[i];
    }
    des.Char2Bit(des.cryptedmsg, des.bcryptedmsg, 8);
    
    des.Decipher();
    
    char msg[9] = {0};
    for (int i = 0; i < 8; i++)
    {
        msg[i] = des.decipher[i];
    }
    
    return string(msg);
}