암호화 도구의 Java 구현이 통합하고 알고리즘 대칭 암호화 DES, AES, IDEA, 공공 암호화 알고리즘 RSA, ECC, MD5, SHA1, CRC32, 및 RSA, DSA, ECDSA 전자 서명 검증 예 알고리즘 해싱.

머리말

우리의 네트워크 정보 보안 실험. . . 우리는 알고리즘 소스 코드의 다양한 찾으려면, 사실, 이것은 약간의 시간이 소요입니다, 어려운 일이 아니다. 와 나는 인터넷에있는 코드를 통합 자바 만들를 암호화 도구를 . 어떤 대칭 암호화 알고리즘을 포함 DES, AES, IDEA, 공공 암호화 알고리즘 RSA, ECC, 해시 알고리즘 MD5, SHA1, CRC32, 및 RSA, DSA, ECDSA 전자 서명 검증 예.

하루 종일, 조금 아픈 두개골, 간 테스트 보고서를 수행하고 쓰기 반 일의 전체를 , 10 명 부분은 라이브 내 간을 통해 모든했다.

모든 암호화 알고리즘은 내가 실행할 수 있습니다 찾기 어렵다. . 그런 다음 호출 인터페이스를 수정하고, 마지막으로 Base64로 인코딩 문자열 문자열로 표시된 결과를, 나는 각 알고리즘은 암호화 및 암호 해독을 수정할 수 있음을 보장 할 수 있지만, 알고리즘 자체의 정확성을 보장 할 수 없습니다 .

단지 실험에 사용 작은 도구, 너무 많은 예외가 아닌 인간적인 곳없는 치료 때문에, 필요와 추구가있다.
그림 삽입 설명 여기

자식의 URL

https://github.com/szluyu99/Encryption-And-Decryption-By-Yu

프로젝트 구조

그림 삽입 설명 여기
그림 삽입 설명 여기
그림 삽입 설명 여기
그림 삽입 설명 여기

프로젝트 미리보기

이것은 내가 작은 데모를보기 전에 그들이 메인 인터페이스 쇼 그것에서 가져온 경우, 공기 쇼를 느낄 수 있었다.
그림 삽입 설명 여기
혼란 ~ 클릭
그림 삽입 설명 여기
대칭 암호화 DES,의를, DES2 두 DES 알고리즘 소스, AES, IDEA 공감을 구현 나타냅니다.
그림 삽입 설명 여기
공공 암호화 내부, RSA는, RSA2는 두 개의 소스 RSA 구현을 나타냅니다. ECC 유사하지만, ECC3에 관계없이, 어떻게 잊어 버린 것 같았다.
그림 삽입 설명 여기
해시 알고리즘 는 MD5, SHA1, CRC32 포함되어 있습니다. withSalt익스프레스 소금 .

그림 삽입 설명 여기
디지털 서명은 그래픽 인터페이스에 배치되지 않는,하지만이 프로젝트는 실행할 수있는 데모가 포함되어 있습니다.

해시 테이블, 나중에 채택가 rainbowcrack 및 MD5Crack3.0, UltraCrackingMachine 여러 준비가 만든 소프트웨어 균열, 사용하기 쉬운 올라갈 곳이 없다. .

애프터하면이 소프트웨어를 완료 organic'll. (소프트웨어의 각 경우에 나는 항상 생각)

다음 문자열과 노트의 바이트 [] 시스템 변환을 추가합니다.

문자열 바이트 [] Huzhuan

학습 및 상호 문자열 변환 자바 바이트 어레이 실시 예를 이용함으로써, 변환은 암호화 된 해쉬 코드 등을 생성하는 등의 IO 동작 많은 경우에 필요할 수있다.

일반적으로, 특별한 요구하지 않는 한, 서로 변환하지 않습니다, 그들은 서로 다른 데이터, 서로 다른 목적을 위해 전문 서비스, 대표 일반적으로 String텍스트 문자열을 대신하여 , byte[]바이너리 데이터를 .

네트워크 보안, 암호화 실험을 할 수있는 지난 이틀 통합하여 인터넷 대칭 암호화, 공공 암호화, 해시 알고리즘을 찾을 수있는 작은 도구를 썼다. 그러나 많은 온라인 알고리즘입니다 byte[]그것은 보여 Base64로하여 문자열로 변환 할 수 있습니다, 인코딩 및 디코딩 우리가 보여 편리하지 않다.

으로 String급 전환

하는 String.getBytes () 바이트 배열을 문자열로 변환하는 문자열 생성자에 의해, 문자열 바이트 배열을 변환하는 방법

참고 :이 방법은 플랫폼의 디폴트의 문자 집합을 사용

public class StringByteArrayExamples 
{
    public static void main(String[] args) 
    {
        // String
        String string = "hello world";
        // String 转 byte[]
        byte[] bytes = string.getBytes();
        // byte[] 转 String
        String s = new String(bytes);
 
        System.out.println("Decoded String : " + s);
    }
}
hello world

저자 Base64Huzhuan [JDK-8]

Base64A는 이진 데이터 인코딩 등의 방식을 UTF-8, 그리고 UTF-16텍스트 데이터로 이진 데이터를 인코딩해야 그렇다면, 인코딩 된 텍스트 데이터와 같은, 그것은 Base64이러한 수요를 달성 할 수있다.

자바 8에서 사용할 수있다 Base64이 클래스를.

import java.util.Base64;

public class StringByteArrayExamples 
{
    public static void main(String[] args) 
    {
        // byte[]
        byte[] bytes = "hello world".getBytes();
         
        // byte[] 转 String
        String encoded = Base64.getEncoder().encodeToString(bytes);
         
        // String 转 byte[]
        byte[] decoded = Base64.getDecoder().decode(encoded);
         
        System.out.println( new String(decoded) );
    }
}
hello world
게시 된 171 개 원래 기사 · 원 찬양 47 ·은 20000 +를 볼

추천

출처blog.csdn.net/weixin_43734095/article/details/105303562