오늘 일부 코드와 관련된 질문을했습니다.C++ - 해시 알고리즘 코드 반환 없음
나는 C에서 사용자 지정 해시 알고리즘을 ++ 작성했습니다. 그러나 프로그램은 오류없이 실행되지만 동시에 아무 것도 인쇄하지 않습니다.
내가 거기 밖으로 다른 모든 Alt 키 동전 가치가 아무것도 없을 것 알고에도 불구하고 Alt 키 동전 측 프로젝트를 진행하고있다. 난 내 동전의 블록 체인 및 기타 필요한 다른 해시 알고리즘을 사용하는 대신 내 자신의 해싱 알고리즘을 쓸 것이라고 결정했습니다.
은 내가 내 자신 만의 암호화 또는 해시를 사용하지 말아야 과거에 말했지만, 나는 그것을 시도 줄 것입니다 결정했습니다.
왜 누군가 제대로 작동하지 않는지 알 수 있습니까?
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
typedef unsigned int dword;
struct
{
dword count;
dword recept;
dword multiple = 13;
dword divisible = 1.6;
dword subhexvalue;
std::vector<dword> endrecept;
} SMDH;
inline dword smdh(std::string data)
{
for (SMDH.count; SMDH.count < data.length(); SMDH.count++)
{
SMDH.recept = SMDH.recept^(data[SMDH.count]) * SMDH.multiple/SMDH.divisible + SMDH.recept;
}
for (SMDH.count = data.length(); SMDH.count >= 0; --SMDH.count)
{
SMDH.subhexvalue = ((SMDH.recept >> (4 * SMDH.count)) % 16);
if (SMDH.subhexvalue < 10) {SMDH.endrecept.push_back(SMDH.subhexvalue); }
else { SMDH.endrecept.push_back((char)'A' + (SMDH.subhexvalue - 10)); }
}
for (SMDH.count = 0; SMDH.count < sizeof(SMDH.endrecept)/sizeof(SMDH.endrecept[0]); ++SMDH.count)
{
SMDH.recept = (SMDH.recept >> SMDH.endrecept[SMDH.count]);
}
return SMDH.recept;
}
int main()
{
std::cout << smdh("testing");
std::getchar();
return 0;
}
는 출력은 그 다음 그 자체를 첨가 한 다음 분할 승산 문자열에서 모든 바이트를 XOR 연산 될 수 있다고 가정한다. 그런 다음 16 진수로 변환한다고 가정합니다.
아무런 오류없이 답을 얻을 수 있습니다.
죄송합니다. 선장이 명백한 경우 출력을 강제로 플러시하려고 했습니까? – amit
내가 겹쳐 쓰려고하는 것은 recept 변수뿐입니다. 그래서 대체 변수를 만들었습니다. 나는 그것이 당신이 묻고있는 것이 었는지 모르겠다. ... – MAXBD
오, 내가 데이터 인수를 수정하지도 않았다고 생각한다. 나는 데이터 변수가 아닌 recept 변수를 해쉬했다. 다시 시도 할 것이다. – MAXBD