// 密钥输入框内容改变时的响应事件 void CBlockDESForm::OnEnChangeEditKey() { UpdateData(TRUE); // 判断编码方式 if(FALSE == m_stateRadioAnsi) { // ANSI方式 // 对复制的长数据进行截断 if(CStrT2CStrA(m_strKey).GetLength()>8) m_strKey = CStrA2CStrT(CStrT2CStrA(m_strKey).Left(8)); // 计算ANSI方式的十六进制编码 m_strKeyHex = Text2AnsiHex(m_strKey); } else { // Unicode方式 // 对复制的长数据进行截断 if(CStrT2CStrW(m_strKey).GetLength()>4) m_strKey = CStrW2CStrT(CStrT2CStrW(m_strKey).Left(4)); //计算Unicode方式的十六进制编码 m_strKeyHex = Text2UnicodeHex(m_strKey); } UpdateData(FALSE); DoEncrypt(); }
void CHashMD5Form::OnEnChangeEditPlaintext() { UpdateData(TRUE); //判断编码方式 if(FALSE == m_stateRadioAnsi) { // // ANSI方式 // // 计算ANSI方式的十六进制编码 m_strPlainTextHex = Text2AnsiHex(m_strPlainText); } else { // // Unicode方式 // //计算Unicode方式的十六进制编码 m_strPlainTextHex = Text2UnicodeHex(m_strPlainText); } UpdateData(FALSE); // 判断明文和密钥是否为空,为空则不计算。 if((!m_strPlainText.GetLength())) { m_strCipherTextHex.Empty(); m_btln1.EnableWindow(FALSE); m_btln2.EnableWindow(FALSE); m_strM10 = _T(""); m_strM11 = _T(""); m_strM12 = _T(""); m_strM13 = _T(""); m_strM14 = _T(""); m_strM15 = _T(""); m_strM16 = _T(""); m_strM1 = _T(""); m_strM2 = _T(""); m_strM3 = _T(""); m_strM4 = _T(""); m_strM5 = _T(""); m_strM6 = _T(""); m_strM7 = _T(""); m_strM8 = _T(""); m_strM9 = _T(""); UpdateData(FALSE); return; } m_btln1.EnableWindow(TRUE); m_btln2.EnableWindow(TRUE); DoEncrypt(); }
void Sekrit::SetPlaintext(const Plaintext& plaintext) { if(plaintext.empty()) { // input empty, reset content m_impl->header.realsize = m_impl->header.size = 0; memset( m_impl->header.hash, 0, sizeof(m_impl->header.hash) ); m_impl->data.clear(); } else { DoEncrypt(plaintext); ComputeHash(m_impl->header.hash, plaintext, m_impl->header.iv); } }