sha-1
2021. 5. 12. 09:37ㆍ암호학/C언어
#include
#include <string.h>
// strlen 쓰려고
using namespace std;
void text_move(char *, int);
int count1;
void char_to_int(char text);
void boohowha(int a);
int binary_text[128];
int main()
{
count1 = 0;
/*
char text[128];
cout << "암호화할 코드를 입력하세요 : ";
cin >> text;
cout << "평문 : " << text << endl;
for (int i = 0; i < strlen(text); i++)
{
cout << i << " : " << (int)text[i] << endl;
}
// 문자열 부호화(문자열 -> 10진수)
// 10진수 -> 2진수
*/
char text[100];
cout << "암호화할 코드를 입력하세요 : ";
cin >> text;
//cout << (int)'@' << endl;
//boohowha();
text_move(text, strlen(text));
cout << "길이 : " << strlen(text) << endl;
cout << "삽입 결과 : ";
for (int i = 0; i < strlen(text) * 8; i++) {
// 텍스트 길이 x 글자당 2진수 갯수(8개)
cout << binary_text[i];
}
return 0;
}
void text_move(char* text,int a)
{
for (int i = 0; i < a; i++)
// 한글자씩 부호화하기 위해 글자단위로 나눔
{
cout << text[i];
char_to_int(text[i]);
cout << endl;
}
}
void char_to_int(char text)
// 부호화하기위해 char형을 아스키코드로 변환하기 위해 int형으로 변환
{
int start = (int)text;
boohowha(start);
/*
cout << "값 : " << a[0] << endl;
for (int i = 0; i < 8 ; i++)
{
cout << "값 : " << *(a+1) << endl;
}
*/
}
void boohowha(int a)
// 부호화 // 이진연산 자체가 역순으로 나오기때문에 배열에 저장할 때도 역순으로 저장한다. 역순의 역순 -> 정순
{
int remainder;
int c[8] = { 0, };
int i = 7;
while (a != 1)
{
remainder = a % 2;
a = a / 2;
c[i] = remainder;
//cout << c[i] << endl;
i--;
if (a == 1)
{
c[i] = 1;
}
}
for (i = 0; i < 8; i++)
{
binary_text[count1] = c[i];
count1++;
}
}
'암호학 > C언어' 카테고리의 다른 글
sha-1 알고리즘 코딩 (0) | 2021.05.14 |
---|---|
sha-1 (0) | 2021.05.13 |
Caesar Cipher(시저 암호) for C언어 (0) | 2020.11.30 |
C언어 / 입력한 문자 거꾸로 출력 (0) | 2020.11.29 |
C언어 / scanf 기본 출력 (0) | 2020.11.29 |