C++ 2020. 4. 15. 09:11

<stdio.h>#include <Windows.h>#include <conio.h> //로컬디스크 D 에 ID 라는 파일을 생성해주세요 (대문자)#include <string.h> //프로젝트 - 속성 - c/c++ - 전처리기 ;_CRT_SECURE_NO_WARNINGS 를 추가#include <stdlib.h>#include <ctype.h>

void menu(int*); //로그인프로그램메뉴void login(char*, char*); //로그인void singup(char*, char*); //회원가입

int main(void){ int cho; //선택화면에서 선택값을 저장하는곳 char loginid[15]; //로그인에서 아이디를 저장하는곳 char loginpassword[15]; //로그인에서 비밀번호를 저장하는곳 char singupid[15]; //회원가입에서 아이디를 저장하는곳 char singuppassword[15]; //회원가입에서 비밀번호를 저장하는곳

menu(&cho);

switch (cho) { case 1: login(loginid, loginpassword); break; case 2: singup(singupid, singuppassword); break; default: printf("잘못입력하셨습니다."); main(); break; }}

void menu(int *cho) //메인화면{ printf_s("제작자 : staff2303@gmail.com \n"); printf_s("==============================================. \n"); printf_s("1.login \n"); printf_s("2.sing up \n"); printf_s("주의! 문자입력시오류! (수정중)\n"); scanf_s("%d", cho); system("cls");

}

void login(char *loginid, char *loginpassword) //로그인화면

{ FILE *rfp; char file[50]; char loginpassword2[15]; int amo; printf_s("login. \n"); printf_s("==========================================. \n"); printf_s("  I  D   : "); scanf_s("%s", loginid, 15); sprintf_s(file, "D:\\ID\\%s.txt", loginid); // 아이디와 똑같은 파일을 오픈 fopen_s(&rfp, file, "r"); // 파일이없어서열수없을경우 rfp에는 NULL이들어온다. 

if (rfp == NULL) { system("cls"); printf_s("아이디가없습니다. \n"); printf_s("==========================================. \n"); system("Pause"); system("cls"); main(); }

printf_s("PASSWORD : "); scanf_s("%s", loginpassword, 15); printf("암 호 키 : "); scanf_s("%d", &amo); FILE* fp = fopen(file, "r");   //파일오픈 fgets(loginpassword2, 15, fp); //메모장에서 password를  password2로 저장 fclose(fp); for (int i = 0; loginpassword2[i] != '\0'; i++) //password 복호화 { if (isalpha(loginpassword[i])) { if (loginpassword2[i] - amo < 'a') { int plus = 'a' + amo - 1 - loginpassword2[i]; loginpassword2[i] = 'z'; loginpassword2[i] -= plus; } else loginpassword2[i] -= amo; } else { if (loginpassword2[i] - amo < '0') { int plus = '0' + amo - 1 - loginpassword2[i]; loginpassword2[i] = '9'; loginpassword2[i] -= plus; } else loginpassword2[i] -= amo; } }

if (strcmp(loginpassword, loginpassword2) == 0) // 입력한 password와 복호화된 password를 비교 { printf_s("\n로그인완료\n"); system("Pause"); system("cls"); exit(1); } else { system("cls"); printf_s("비밀번호 혹은 암호키가 틀립니다.\n"); system("Pause"); system("cls"); main(); }}

void singup(char *singupid, char *singuppassword)

{ FILE *fp; char file[50]; int amo; printf_s("sing up. \n"); printf_s("==========================================. \n"); printf_s("아이디를입력하시오(15자이내). \n"); scanf_s("%s", singupid, 15); sprintf(file, "D:\\ID\\%s.txt", singupid); // 폴더의 이름과 경로를 file 에 저장 (아이디 = 폴더의 이름) fp = fopen(file, "w+"); fclose(fp); Sleep(1000); system("cls");

printf_s("sing up. \n"); printf_s("==========================================. \n"); printf_s("비밀번호를입력하세요(영문, 숫자 15자이내).\n"); scanf_s("%s", singuppassword, 15); printf_s("암호키를 입력하세요(1~5) \n"); scanf_s("%d", &amo);

for (int i = 0; singuppassword[i] != '\0'; i++) //password 암호화 { if (isalpha(singuppassword[i])) { if (singuppassword[i] + amo > 'z')

{ int less = singuppassword[i] - 'z';

singuppassword[i] = 'a' + amo - 1; singuppassword[i] += less; } else singuppassword[i] += amo; } else { if (singuppassword[i] + amo > '9')

{ int less = singuppassword[i] - '9';

singuppassword[i] = '0' + amo - 1; singuppassword[i] += less; } else singuppassword[i] += amo; } } fp = fopen(file, "w+"); fprintf(fp, "%s", singuppassword); fclose(fp); Sleep(1000); system("cls"); //완료창  printf_s("회원가입완료. \n"); printf_s("==========================================. \n"); Sleep(1000); system("cls"); main();}

'C++' 카테고리의 다른 글

[C++] 네이버 RSA 로그인 소스  (0) 2020.04.14
posted by 핵커 커뮤니티
:
VB 2020. 4. 15. 09:08

먼저 폼에 커맨드버튼 1개, 텍스트 박스 1개를 준비한후,

프로젝트▶구성 요소로 들어간다음 잘 찾아보시면

Microsoft Internet controls 가 있습니다. 그것을 체크하신후,

확인을 누르면 도구 탭에 지구(?)가 등록되는 대요,

그걸 클릭하고 폼에 추가 해 줍니다.

커맨드버튼에 무엇을 입력하냐면

Private sub CommandButton1_click()

WebBrowser1.Navigate (Text1)

End sub 가 되겠죠.

그리고 Text1에 주소를 입력하고 커맨드 버튼을 누르면 웹 브라우저에 인터넷이 표시됩니다.

만약 뒤로, 앞으로, 홈으로, 새로고침 을 추가 하고 싶다면,

뒤로는

Private sub CommandButton1_click()

WebBrowser1.GoBack

End sub 이고

앞으로는

Private sub CommandButton1_click()

WebBrowser1.GoForward

End sub 이고

홈으로는

Private sub CommandButton1_click()

WebBrowser1.GoHome

End sub 이고

새로고침은

Private sub CommandButton1_click()

WebBrowser1.Refresh 가 되겠죠.

만약 웹브라우저에서 새로운 창을 추가하면,

Internet Explorer 로 새 창이 나옵니다.

만약 만든 브라우저로 새 창을 열고 싶을때는,

이 코드를 폼에 추가 하면 됩니다.

Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)

Dim frm As Form1

Set frm = New Form1

Set ppDisp = frm.WebBrowser1.Object

frm.Show

End Sud

'VB' 카테고리의 다른 글

[VB] 랜덤숫자을 출력해보자  (0) 2020.04.15
[VB] 다음 로그인 소스  (0) 2020.04.15
[VB] 스마일파일 로그인 소스  (0) 2020.04.15
[VB] 한글판 패치하기  (0) 2020.04.15
posted by 핵커 커뮤니티
:
VB 2020. 4. 15. 09:05

Function DaumLogin(id As String, Pw As String) As Boolean

winhttp.Open "POST", "https://logins.daum.net/accounts/login.do?slogin=2", True

winhttp.SetRequestHeader "Host", "logins.daum.net"

winhttp.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0"

winhttp.SetRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"

winhttp.SetRequestHeader "Referer", "https://logins.daum.net/accounts/loginform.do"

winhttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"

winhttp.Send "id=" & id & "&pw=" & Pw

winhttp.WaitForResponse

 

If InStr(winhttp.ResponseText, "Daum 로그인 오류") = 0 Then

 

Login = True

Else

Login = False

 

End If

 

End Function

'VB' 카테고리의 다른 글

[VB] 인터넷창 띄우기 (소스)  (0) 2020.04.15
[VB] 랜덤숫자을 출력해보자  (0) 2020.04.15
[VB] 스마일파일 로그인 소스  (0) 2020.04.15
[VB] 한글판 패치하기  (0) 2020.04.15
posted by 핵커 커뮤니티
:
자료실 2020. 4. 15. 08:46

컴포넌트.zip
0.03MB

 

posted by 핵커 커뮤니티
:
SQL 2020. 4. 14. 19:21

결과값 일부 조회 (ROWNUM, TOP)

SQL 쿼리 결과 중 상위 몇 개만 보여주는 쿼리

SELECT 컬럼명 1, 컬럼명 2, ... FROM 테이블명 WHERE 조건절 LIMIT 숫자

대표적인 비표준기능 (DBMS 종류마다 다름)

예제

- 국가코드가 'KOR' 인 도시들 중 인구수 많은 순서로 상위 10개만 표시하시오

결과 확인

- SELECT CountryCode FROM city WHERE CountryCode = 'KOR' ORDER BY Population DESC LIMIT 10;

집합함수 (Aggregation Function)

테이블의 전체 레코드를 대상으로 특정 컬럼을 적용해서 한 개의 값을 리턴하는 함수

COUNT(), AVG(), SUM(), MIN(), MAX(), FIRST(), LAST(), ....

     - COUNT()   ->  레코드의 개수를 리턴하는 함수

     - SUM() / AVG()   ->   컬럼값의 합/평균을 리턴

     - MIN() / MAX()   ->   컬럼값의 최소/최대값을 리턴

사용법 : SELECT aggregation_function(컬럼명) FROM 테이블명 WHERE 조건절

예제

- City 테이블에서 국가코드가 'KOR' 인 도시의 수를 표시하시오

- City 테이블에서 국가코드가 'KOR' 인 도시들의 인구수 총합 / 평균을 구하시오

- City 테이블에서 국가코드가 'KOR' 인 도시들의 인구수 중 최대값 / 최소값을 구하시오

결과 확인

- SELECT COUNT(*) FROM city WHERE CountryCode = 'KOR'

- SELECT SUM(Population) FROM city WHERE CountryCode = 'KOR'

- SELECT AVG(Population) FROM city WHERE CountryCode = 'KOR'

- SELECT MIN(Population) FROM city WHERE CountryCode = 'KOR'

- SELECT MAX(Population) FROM city WHERE CountryCode = 'KOR'

유용한 함수들

LENGTH() - 레코드의 문자열 컬럼의 글자수를 리턴한다.

MID() - 문자열의 중간부분을 리턴한다.

UPPER() / LOWER() - 문자열을 대문자/소문자로 리턴한다.

ROUND() - 레코드의 숫자 컬럼값을 반올림

posted by 핵커 커뮤니티
:
DelPhi 2020. 4. 12. 13:50

//랜덤 문자 만들기
function random_string($len) {
 $str = '1234567890abcdefghijklmnopqrstuvwxyz';
 $strlen = strlen($str) -1;
 $return = '';
 for ($i = 0; $i < $len; $i++) {
  $rand = rand(0, $strlen);
  $return .= $str[$rand];
 }
 return $return;
}

posted by 핵커 커뮤니티
: