본문 바로가기

프로그래밍 언어

C언어로 패스워드 입력(* 마스킹) C언어에서 패스워드값을 입력받으려 할 때 문자 대신 *표시가 나오도록 하는 코드입니다. #include int main(){char pass[10];int i = 0; /* Case 1while(1){pass[i]=getch();if(pass[i] != '\r'){printf("*");i++;}else{return 0;}*//* Case 2while(pass[i]=getch()!='\r') { printf("*");i++;}*/return 0;} 혹은 getch()를 이용하여 입력되는 문자열이 안 보이도록 코딩하는 방법도 있습니다. 더보기
파이썬 따옴표의 차이(Python "", '') 파이썬에서는 문자열을 만들 때 ' ' 나 " " 이용합니다. 모두 문자열을 표시한다는 것에서는 차이가 없지만 작은 따옴표의 경우 하나의 단위를 표현하는 문자열에, 큰 따옴표는 문법적으로 의미를 두지 않는 문자열을 표현할 때 사용한다고 보시면 됩니다. 예를 들면 다음과 같습니다. if compiler == 'python': ... else: print "Python is Snake" 예제와 같이 문법적으로 의미를 가지는 단위의 경우 ' '를 사용하고, 크게 의미를 가지지 않는 문자열은 " "를 이용합니다. 하지만 어디까지나 관습이기 때문에 각각의 조직이나 개인별 차이가 있을 수 있습니다. = ) 더보기
파이썬 개행문자 제거(Python rstrip) 파이썬에서는 print()를 사용하면 자동으로 개행이 이뤄지고, 이런 print()와 값의 반환과 동시에 개행을 하는 함수를 이용하면 화면상에서는 2줄을 개행하게 됩니다. 이런 경우 문자열의 가장 마지막에 들어가는 개행문자('\n')을 제거해주면 되는데요. 가장 우측의 공백을 제거하는 함수인 rstrip()를 이용하면 됩니다. 함수의 인자로 개행문자인 '\n' 을 전달하면 되는데요. 제가 프로그래밍 했던 소스를 보겠습니다. import base64 print ("Base64: %s" % base64.encodestring("TEST").rstrip('\n')) rstrip('\n')을 사용하게 되면 개행문자를 제거하고 한 번만 개행시킬 수 있습니다. = ) 더보기
Python password 입력받기 Python에서 input()이나 raw_input()으로 문자열을 받을 경우 password 같이 화면에 보이지 않게 입력해야 할 경우가 있는데요. echo off 기능과 같은 것으로 python에서는 getpass module을 import 시켜서 같은 효과를 볼 수 있습니다. 이 getpass는 기본적으로 'Password: ' 가 prompt로 설정되어 있습니다. >>> import getpass >>> pw = getpass.getpass()Password: # 밑줄 부분은 입력이 보이지 않습니다. 만약 다른 prompt를 사용하고 싶으시다면 input()과 마찬가지로 괄호 안에 문자열을 넣어주시면 됩니다. 하지만 암호화까지 지원하지는 않기 때문에 프로그램에서 위와 같이 출력할 경우 passwo.. 더보기
유용한 파이썬 팁과 코드 조각 더보기
Python input / raw_input 문자열 입력 Python에서 사용자의 입력을 받는 방법이 두 가지가 있습니다. input() 함수를 이용한 방법과 raw_input()을 이용한 방법으로 두 함수는 사용자 입력을 어떻게 받아들이냐의 차이입니다. 예제를 통해 두 가지 방법의 차이점을 알아보겠습니다. input()의 경우 정수형으로 입력을 받습니다. >>> a = input()1234>>> a1234>>> print a1234 raw_input()의 경우 문자열로 입력을 받습니다.>>> a = raw_input()1234>>> a'1234'>>> print a1234 위의 경우 변수 a를 출력했을 때 '' 의 차이를 보고 정수형인지 문자열인지 알 수 있습니다. a = input()을 했을 경우 '' 없이 asdf라고 입력을 하면 문법 에러가 발생하며 '.. 더보기
Python print end=' ' parameter 파이썬 한 줄로 출력하는 방법 = ) Python 2.x 버전을 사용하면서 강좌를 볼 때 end=' '를 사용해서 print 결과를 한 줄에 출력하는 것을 종종 봤지만 계속 문법 에러를 발생시키면서 invalid syntax만 보여줬습니다. 2.4버전이 너무 낮은건가 싶어서 2.7로 올려도 계속 같은 에러를 보여주길래 그제서야 구글링 해봤습니다. 구글링 결과 end=' ' 는 python 3.x 버전부터 지원되는 문법이라 2.x버전에서는 에러가 발생하게 되고 2.x버전에서는 다른 방법을 사용해야합니다. ※ 참고 : http://stackoverflow.com/questions/2456148/python-print-end Python 3.xfor i in range(10):print( i, end=' ' .. 더보기
어셈블리어 모음(Assembly code) INC(Increase) : 피연산자에 1을 더한다. ZF, OF가 세트될 수 있다. ex) INC reg DEC(Decrease) : 피연산자에 1을 뺀다. ZF, OF가 세트될 수 있다. ex) DEC reg ADD(Add) : Destination에 Source의 값을 더해서 Destination에 저장하는 명령이다. ZF, OF, CF가 세트될 수 있다. ex) ADD eax, 123 => eax 레지스터에 123을 더해서 eax 레지스터에 저장한다. SUB(Subtract) : Destination에 Source에 값을 빼서 Destination에 저장하는 명령이다. ZF, OF, CF가 세트될 수 있다. ex) SUB eax, 123 => eax 레지스터에 123을 빼서 eax 레지스터에 저장.. 더보기