이 암호화 방법은 세 부분으로 나뉩니다.
1. 레지스트리의 검색 결과를 기반으로 설정 대화 상자의 내용을 결정하십시오.
2. 처음으로 사용하면 새 비밀번호를 설정하면 암호를 설정하십시오.
3. 비밀번호 변환 애플릿 (원래의 것보다 훨씬 더 복잡함). 물론 암호 함수를 수정 해야하는 경우 비밀번호 설정 부분을 변경하십시오.
1. 프로그램이 시작되면 레지스트리를 검색하여 창의 표시 내용을 결정하는 비밀번호가 있는지 확인하십시오. 그러나 사용하기 전에 다음 진술을 작성해야합니다.
사용자에 Tregistry를 추가하고 VAR 선언에 다음 양식 변수를 추가하십시오.
거기 : Tregistry;
기조 이름, Valuest, tempst : 문자열;
절차 tfrmpass.formshow (sender : tobject);
시작하다
거기 : = tregistry.create;
거기에 시도해보십시오.
기조 행사 : = '소프트웨어/MyPassword';
//이 키를 사용할 수 있으면 열리지 않으면 생성됩니다.
거기에 g.openkey (Keyname, true)를 시작하면 시작하십시오
tempStr : = extractFileName (application.exename);
valuestr : = whereg.readstring (tempstr);
// 비밀번호가 비어 있지 않은 경우 양식을 수정하여 비밀번호를 확인하십시오.
valuestreest <> ''라면 시작하십시오
edit2.visible : = false;
edit1.caption;
// 비밀번호가 비어 있으면 비밀번호를 설정하도록 양식을 수정하십시오. 대화 상자
그렇지 않으면 시작합니다
showmessage ( '처음으로 암호를 설정하십시오!');
edit2.visible : = frmpass.caption : = '새 비밀번호를 설정하십시오.
edit1. setfocus; caption : = 'set';
끝;
마침내 끝;
2. 버튼의 응답 코드 : 새 비밀번호와 확인 비밀번호가 포함되어 있습니다.
절차 tfrmpass.okclick (sender : tobject);
시작하다
// edit2가 표시되는지 여부에 따라 기존 암호를 판단하고 확인하고 확인하십시오.
edit2.visible = false 인 경우 시작하십시오
Pass (edit1.text) = valuest를 시작하면 시작합니다
showmessage ( '비밀번호가 정확합니다!');
그렇지 않으면 시작합니다
showMessage ( '비밀번호가 잘못되었습니다! 작동 권한이 없습니다!');
중단; 끝;
그렇지 않으면 시작합니다
edit1.text = edit2.text 인 경우 시작하십시오
거기 : = tregistry.create;
geth.rootkey : = hkey — Local — Machine;
기조 행사 : = '소프트웨어/MyPassword';
whereg.openkey (KeyName, True). 그렇다면
whereg.writestring (tempstr, pass (edit1.text));
거기에 클로즈키;
그렇지 않으면 시작합니다
showmessage ( '다시 입력 한 비밀번호는 일치하지 않습니다. 다시 들어가십시오!');
edit1.text : = ′ ′;
edit1. 세트 포커스;
끝;
3. 비밀번호 변환 프로그램 : 사전 정의에주의하십시오.
제 생각에,이 변형 미니 프로그램은 그다지 복잡하지는 않지만 두 가지 변형을 겪는 것은 아니지만 해독하는 데 약간의 노력이 필요합니다. 독자는 다른 수학적 기능을 사용하여보다 복잡한 변환을 수행 할 수 있습니다.
함수 패스 (pstr : String) : 문자열;
var str, str1 : 문자열;
I, J : 정수;
시작하다
str : = pstr;
i : = 1에서 길이 (str)가 시작됩니다
// 첫 번째 변경을 제발
j : = (i i i * i mod (i + 20))+(i * i mod (i + 10))+i * 2 + 1;
str1 : = str1+chr (ord (str [i])+j);
j : = (i i i * i mod (i + 10))+(i * i mod (i + 20))+i * 2 + 1;
str1 : = str1+chr (ord (str [i])+j);
패스 : = str1;
끝;