Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
AdvSim.Cryptography — Simple and sane cryptographic wrapper library. | Kitploit
도구/GitHubGitHub/fuzzysecurity/advsim.cryptography
Encryption/Decryption ToolsCryptographyUtilities & FrameworksAuthentication
GitHubfuzzysecurity/advsim.cryptography

AdvSim.Cryptography

Simple and sane cryptographic wrapper library.

저장소 보기
3353년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Release

AdvSim.Cryptography

AdvSim.Cryptography NuGet에는 재사용 가능하고 합리적인 기본값으로 구성되어 사용하기 쉬운 일련의 암호화 래퍼 함수가 포함되어 있습니다. 자세한 내용은 아래의 각 소제목에서 확인할 수 있습니다.

  • 대칭
    • 키 자료 생성
    • AES
    • Triple DES
    • RC4
    • RC2
    • 멀티바이트 XOR
    • XTEA
  • 비대칭
    • 타원곡선 디피-헬만(ECDH)
    • RSA
  • Windows 로컬
    • 엔트로피 생성
    • DPAPI 로컬 머신
    • DPAPI 현재 사용자
  • 기타
    • TOTP

NuGet 호환성

AdvSim.Cryptography NuGet은 다양한 .Net 버전을 지원합니다. 일반적으로 라이브러리에 포함된 함수는 대상 프레임워크 전반에 걸쳐 우수한 지원 범위를 제공합니다. 특정 프레임워크로 제한되는 함수에는 해당 종속성을 강조하는 배지가 추가되어 있습니다.

NuGet URL: https://www.nuget.org/packages/AdvSim.Cryptography

키 자료

암호화 생성자의 일부로 키 자료가 제공되는 경우 Rfc2898DeriveBytes를 사용하여 암호화 및 복호화 작업을 시드하는 의사 난수 바이트 배열을 반환합니다. 이 바이트 배열은 품질이 높을 뿐만 아니라 동일한 키 자료로 동일한 함수를 호출하면 동일한 의사 난수 시드가 생성되도록 보장합니다.

사용법

대칭

AES

Availability

이 함수는 바이트 배열을 받아 생성자에서 제공된 키 자료를 사용하여 암호화하거나 복호화합니다. 완료되면 바이트 배열을 반환합니다.

root@kitploit:~
AES test = new AES("Lovecraft");
Byte[] bEncrypted = test.Encrypt(bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

Triple DES

Availability

이 함수는 바이트 배열을 받아 생성자에서 제공된 키 자료를 사용하여 암호화하거나 복호화합니다. 완료되면 바이트 배열을 반환합니다.

root@kitploit:~
TripleDES test = new TripleDES("Lovecraft");
Byte[] bEncrypted = test.Encrypt(bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

RC4

Availability

이 함수는 바이트 배열을 받아 생성자에서 제공된 키 자료를 사용하여 암호화하거나 복호화합니다. 완료되면 바이트 배열을 반환합니다.

root@kitploit:~
RC4 test = new RC4("Lovecraft");
Byte[] bEncrypted = test.Encrypt(bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

RC2

Availability

이 함수는 바이트 배열을 받아 생성자에서 제공된 키 자료를 사용하여 암호화하거나 복호화합니다. 완료되면 바이트 배열을 반환합니다.

root@kitploit:~
RC2 test = new RC2("Lovecraft");
Byte[] bEncrypted = test.Encrypt(bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

멀티바이트 XOR

Availability

이 함수는 바이트 배열을 받아 생성자에서 제공된 키 자료를 사용하여 암호화하거나 복호화합니다. 완료되면 바이트 배열을 반환합니다.

root@kitploit:~
MultiXOR test = new MultiXOR("Lovecraft");
Byte[] bEncrypted = test.Encrypt(bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

XTEA

Availability

이 함수는 바이트 배열을 받아 생성자에서 제공된 키 자료를 사용하여 암호화하거나 복호화합니다. 완료되면 바이트 배열을 반환합니다.

root@kitploit:~
XTEA test = new XTEA("Lovecraft");
Byte[] bEncrypted = test.Encrypt(bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

비대칭

타원곡선 디피-헬만(ECDH)

Availability Availability

여기서 주의할 점은 v2.0.0에서는 ECDH가 NuGet에서 사용 가능한 모든 .Net 버전에서 지원된다는 것입니다. 그러나 .Net의 다소 의문스러운 설계 결정 때문에 지원되는 모든 대상 간의 상호 운용을 구현하는 것은 간단하지 않습니다.

그 결과 Framework < .Net 4.7과 그 외 모든 대상 간에는 구현 차이가 있습니다. 키 교환을 성공적으로 수행하려면 두 클라이언트가 동일한 그룹에 속해야 합니다. 예를 들어 한 클라이언트는 .Net 6에, 다른 클라이언트는 .Net 4.5.1에 있어야 한다면 RSA를 대신 사용해야 합니다.

.Net 버전 관리에 대해 자세히 알아보려면 다음 리소스를 참조하세요.

  • https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies

사용법

Framework < .Net 4.7

이 대상들은 nistP256만 지원하며 라이브러리를 다음과 같이 사용할 수 있습니다.

root@kitploit:~
// Initialize both clients
ECDH test1 = new ECDH();
ECDH test2 = new ECDH();

// Exchange public keys
Byte[] bPublic1 = test1.GetPublicKeyArray();
Byte[] bPublic2 = test2.GetPublicKeyArray();

// Derive
test1.DeriveSharedKey(bPublic2);
test2.DeriveSharedKey(bPublic1);

// Encrypt / Decrypt
Byte[] bEncrypted1 = test1.Encrypt(bTestData);
Byte[] bDecrypted2 = test2.Decrypt(bEncrypted1);

.Net 4.7+ || Standard 2.1 || .Net 6

이 대상들은 생성자의 인자로 곡선을 사용합니다.

root@kitploit:~
public enum ECCurveType  
{  
    brainpoolP160r1,  
    brainpoolP160t1,  
    brainpoolP192r1,  
    brainpoolP192t1,  
    brainpoolP224r1,  
    brainpoolP224t1,  
    brainpoolP256r1,  
    brainpoolP256t1,  
    brainpoolP320r1,  
    brainpoolP320t1,  
    brainpoolP384r1,  
    brainpoolP384t1,  
    brainpoolP512r1,  
    brainpoolP512t1,  
    nistP256,  
    nistP384,  
    nistP521  
}

사용법은 아래와 같습니다.

root@kitploit:~
// Initialize both clients
ECDH test1 = new ECDH(ECDH.ECCurveType.nistP521);
ECDH test2 = new ECDH(ECDH.ECCurveType.nistP521);

// Exchange public keys
Byte[] bPublic1 = test1.GetPublicKeyArray();
Byte[] bPublic2 = test2.GetPublicKeyArray();

// Derive
test1.DeriveSharedKey(bPublic2);
test2.DeriveSharedKey(bPublic1);

// Encrypt / Decrypt
Byte[] bEncrypted1 = test1.Encrypt(bTestData);
Byte[] bDecrypted2 = test2.Decrypt(bEncrypted1);

RSA

Availability

이 기능은 ECDH의 경우처럼 공유 비밀을 도출하기 위해 공개 키를 교환할 필요가 없으므로 반드시 두 클라이언트가 필요한 것은 아닙니다. 물론 위와 같이 공개 키를 네트워크를 통해 다른 클라이언트에 보내면 그 클라이언트가 오직 당신만 복호화할 수 있는 데이터를 암호화할 수 있습니다.

사용법

root@kitploit:~
RSA test = new RSA();
Byte[] bPublicKey = test.GetPublicKeyArray();
Byte[] bEncrypted = test.Encrypt(bPublicKey, bTestData);
Byte[] bDecrypted = test.Decrypt(bEncrypted);

Windows 로컬

DPAPI 로컬 머신

Availability

암호화 및 복호화되는 데이터는 머신 범위로 제한됩니다. 데이터는 호스트 외부에서는 복호화할 수 없습니다.

root@kitploit:~
// Without entropy
DPAPI test = new DPAPI();
Byte[] bEncrypted = test.EncryptUserDPAPI(bTestData);
Byte[] bDecrypted = test.DecryptUserDPAPI(bEncrypted);

// With entropy
DPAPI test = new DPAPI("Lovecraft");
Byte[] bEncrypted = test.EncryptUserDPAPI(bTestData);
Byte[] bDecrypted = test.DecryptUserDPAPI(bEncrypted);

DPAPI 현재 사용자

Availability

암호화 및 복호화되는 데이터는 현재 사용자 범위로 제한됩니다. 다른 사용자 컨텍스트에서는 데이터를 복호화할 수 없습니다.

root@kitploit:~
// Without entropy
DPAPI test = new DPAPI();
Byte[] bEncrypted = test.EncryptMachineDPAPI(bTestData);
Byte[] bDecrypted = test.DecryptMachineDPAPI(bEncrypted);

// With entropy
DPAPI test = new DPAPI("Lovecraft");
Byte[] bEncrypted = test.EncryptMachineDPAPI(bTestData);
Byte[] bDecrypted = test.DecryptMachineDPAPI(bEncrypted);

기타

TOTP

Availability

시간 기반 일회용 비밀번호(TOTP)는 작업 수행 시 해당 작업이 진본인지 검증하기 위한 추가 확인 수단으로 사용될 수 있습니다. 라이브러리에서 생성된 TOTP는 전체 UtcNow 1분 동안 유효합니다. 이 숫자 비밀값은 대칭 암호화 알고리즘의 회전 키를 동적으로 시드하는 데에도 사용할 수 있습니다. 클라이언트가 서로 다른 머신에서 동일한 시드를 사용하면 동일한 TOTP를 받게 됩니다.

사용법

root@kitploit:~
// Generate a TOTP using a string seed
TOTP test = new TOTP("Lovecraft");
Console.WriteLine("[+] TOPT Code     : "  + oOTP.Code);
Console.WriteLine("[+] TOPT Last Code: "  + oOTP.LastCode);
Console.WriteLine("[+] TOPT Validity : "  + oOTP.Seconds);

// Validate TOTP based on string seed
Boolean bValid = test.ValidateTOTP("Lovecraft", oTOTP.Code);

// Validate TOTP with forgiveness, this allows the previous TOTP
// to also be counted as valid
Boolean bValid = test.ValidateTOTP("Lovecraft", oTOTP.LastCode, true);
도구 다운로드