저는 crypto ++ 라이브러리를 사용하여 응용 프로그램을 작성하고 있습니다. ECB_Mode 템플릿 클래스는 익숙하지 않은 사람들을 위해 CipherModeBase에서 상속받습니다. 프로그램이 컴파일되고 실행되지만, 출력이 올바르지 않습니다. cipher_object에서 암호화 메소드를 호출하면 ECB_Mode 객체를 직접 사용하는 것과 같은 방식으로 작동하지 않습니다. 옵션 객체 인스턴스 변수가 올바르게 할당되었는지 확인했습니다. if_then_else 구조체 또는 switch_case 내에 인스턴스를 작성하여 코드를 멋지게 유지하고 DRY 상태로 유지하려고합니다. 내가 도대체 뭘 잘못하고있는 겁니까?사용자 입력을 기반으로 템플릿에서 객체 만들기
ECB_Mode<AES >::Encryption ecbEncryption(options->key, options->keylen);
ecbEncryption.processData(args);
PS :
여기CipherModeBase *cipher_object;
cipher_object == NULL;
if(options->cipher == BS_AES)
{
ECB_Mode<AES >::Encryption ecbEncryption(options->key, options->keylen);
cipher_object = &ecbEncryption;
}
else if(options->cipher == BS_TWOFISH)
{
ECB_Mode<Twofish >::Encryption ecbEncryption(options->key, options->keylen);
cipher_object = &ecbEncryption;
}
cipher_object->processData(args);
이 작업을 수행 것입니다 : 여기
내가 노력하고 있지만 작동하지 않는 것입니다. 나는 ECB 모드를 사용하지 않는 것을 안다. 나는 모든 것을 작동시킬 때까지 IV를 망치고 싶지 않습니다. 나는 또한 상대적으로 C++에 익숙하지 않다. 여기
감사합니다. 그것은 효과가 있었다. 비교 연산자에 대한 좋은 이해, 어쩌면 휴식 시간 ... – user1456786
사용을 마친 후에도 "cipher_object 삭제"를 기억해야합니다. –