Android 데이터 암호 화의 Base 64 인 코딩 알고리즘 의 간단 한 실현
무슨 Base 64 알고리즘 이 요?
Base 64 는 네트워크 에서 가장 흔히 볼 수 있 는 8Bit 바이트 코드 를 전송 하 는 인 코딩 방식 중 하나 로 Base 64 는 안전 분야 의 암호 화 알고리즘 이 아니 라 사실 Base 64 는 하나의 인 코딩 알고리즘 이 라 고 할 수 있 으 며 데이터 내용 을 인 코딩 하여 전송 하기에 적합 하 다.표준 Base 64 인 코딩 디 코딩 은 추가 정보 없 이 완전히 역 동적 입 니 다.사용자 정의 문자 집합 이 Base 64 인 코딩 방식 으로 데이터 암호 화 에 사용 되 더 라 도 대부분의 장면 에서 쉽게 해 제 됩 니 다.Base 64 인 코딩 은 본질 적 으로 바 이 너 리 데 이 터 를 텍스트 데이터 로 바 꾸 는 방안 입 니 다.비 이 진 데이터 에 대해 서 는 먼저 이 진 형식 으로 변환 한 다음 에 6 비트(2 의 6 차방=64)연속 으로 10 진 값 을 계산 하고 이 값 에 따라 A-Z,a-z,0-9,+,/이 64 글자 에서 해당 하 는 문 자 를 찾 아 텍스트 문자열 을 얻 습 니 다.기본 규칙 은 다음 과 같다.
표준 Base 64 는 64 글자(영문 대소 문자,숫자 와+,/)만 있 고 접미사 등호 로 사 용 됩 니 다.Base 64 는 3 개의 바이트 를 4 개의 인쇄 가능 한 문자 로 바 꾸 기 때문에 Base 64 인 코딩 된 문자열 은 반드시 4 로 나 눌 수 있 습 니 다(접미사 로 사용 되 는 등호 가 아 닙 니 다).등 호 는 반드시 접미사 로 사용 되 며,숫자 는 반드시 0 개,1 개 또는 2 개 이다.원문 길이 가 3 으로 나 누 어 지지 않 으 면 Base 64 는 뒤에\0 을 추가 하여 3n 자 리 를 맞 춰 야 하기 때문이다.정확하게 복원 하기 위해 서 몇 개의 등 호 를 추가 하 였 다.분명히 등 호 를 추가 하 는 수 는 0,1 또는 2 에 불과 하 다.엄 밀 히 말 하면 Base 64 는 암호 화 라 고 할 수 없고 인 코딩 변환 이 라 고 할 수 밖 에 없다.
아래 그림 은 Base 64 인 코딩 표 입 니 다.
Base 64 인 코딩 의 용도?
컴퓨터 에 있 는 모든 데 이 터 는 ascii 코드 에 따라 저장 되 며,ascii 코드 의 128~255 사이 의 값 은 보이 지 않 는 문자 입 니 다.한편,네트워크 에서 데 이 터 를 교환 할 때 예 를 들 어 A 지 에서 B 지 로 전송 할 때 여러 개의 경로 장 치 를 거 쳐 야 한다.서로 다른 장치 가 문자 에 대한 처리 방식 이 다 르 기 때문에 보이 지 않 는 문자 들 은 처리 오류 가 발생 할 수 있 고 전송 에 불리 하 다.그래서 먼저 데 이 터 를 Base 64 인 코딩 으로 만 들 고 모두 보 이 는 문자 로 바 꾸 면 오류 가 발생 할 가능성 이 크게 떨어진다.
Base 64 구체 적 실현
1.)문자열 Base 64 인 코딩
String encodedString = Base64.encodeToString("whoislcj".getBytes(), Base64.DEFAULT);
Log.e("Base64", "Base64---->" + encodedString);
2.)문자열 Base 64 디 코딩
String decodedString =new String(Base64.decode(encodedString,Base64.DEFAULT));
Log.e("Base64", "Base64---->" + decodedString);
3.)파일 을 Base 64 인 코딩
File file = new File("/storage/emulated/0/pimsecure_debug.txt");
FileInputStream inputFile = null;
try {
inputFile = new FileInputStream(file);
byte[] buffer = new byte[(int) file.length()];
inputFile.read(buffer);
inputFile.close();
encodedString = Base64.encodeToString(buffer, Base64.DEFAULT);
Log.e("Base64", "Base64---->" + encodedString);
} catch (Exception e) {
e.printStackTrace();
}
4.)파일 을 Base 64 디 코딩
File desFile = new File("/storage/emulated/0/pimsecure_debug_1.txt");
FileOutputStream fos = null;
try {
byte[] decodeBytes = Base64.decode(encodedString.getBytes(), Base64.DEFAULT);
fos = new FileOutputStream(desFile);
fos.write(decodeBytes);
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
5.Base64.DEPAULT 매개 변수 에 대한 설명인 코딩 이 든 디 코딩 이 든 하나의 매개 변수 가 있 습 니 다.Flags,Android 는 다음 과 같은 몇 가 지 를 제공 합 니 다.
DEFAULT 이 인 자 는 기본 값 입 니 다.기본 적 인 방법 으로 암호 화 합 니 다.
NO_PADDING 이 인 자 는 암호 화 문자열 의 마지막"="을 생략 합 니 다.
NO_WRAP 이 매개 변 수 는 모든 줄 바 꿈 자 를 생략 한 다 는 뜻 입 니 다.(설정 후 CRLF 는 소 용이 없습니다.)
CRLF 라 는 매개 변 수 는 낯 이 익 은 것 같 습 니 다.이것 이 바로 Win 스타일 의 줄 바 꿈 문자 입 니 다.즉,CR LF 라 는 쌍 을 유 닉 스 스타일 의 LF 가 아 닌 한 줄 의 끝 으로 사용 한 다 는 뜻 입 니 다.
URL_SAFE 라 는 매개 변 수 는 암호 화 할 때 URL 과 파일 이름 에 특별한 의 미 를 가 진 문 자 를 암호 화 문자 로 사용 하지 않 는 다 는 뜻 입 니 다.구체 적 으로 는-과 입 니 다.대체+와/
요약:
Base 64 인 코딩 은 간단 해 보이 지만 실제 개발 에 서 는 상당히 광범 위 하 게 사용 된다.현재 프로젝트 에 이렇게 많이 쓰 일 뿐 이 고 앞으로 더 복잡 한 상황 을 사용 할 때 보충 하 겠 습 니 다.
이상 은 여러분 에 게 가 져 온 안 드 로 이 드 데이터 암호 화의 Base 64 인 코딩 알고리즘 의 간단 한 실현 모든 내용 입 니 다.많은 응원 부 탁 드 리 겠 습 니 다~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ssh를 통해 이미지 데이터와 같은 바이너리를 서버로 보냅니다.ssh로부터 웹 컨텐츠 등을 편집하고 있을 때, 약간의 화상을 서버상에 보내고 싶을 때가 있다. 또 하나 콘솔을 열어 거기에서 scp하거나 전송용의 어플리케이션을 기동하거나 해도 괜찮지만, 괜찮다. 몇 대의 서버를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.