
시간이 지남에 따라 확장 가능한 복잡성을 기반으로 한 진화적 암호화 프레임워크

고도로 민감한 데이터를 보호하는 데 초점을 맞춘 temcrypt는 시간이 지남에 따라 확장 가능한 복잡성을 제공하고 일반적인 무차별 대입 공격에 저항하는 고급 다중 계층 데이터 진화 암호화 메커니즘입니다.
temcrypt를 배포할 때 자신만의 애플리케이션, 스크립트 및 자동화를 만들 수 있습니다.
temcrypt가 의미하는 바, 나를 만들게 한 기능과 영감, 그리고 그 이상을 알아보세요. 지식 문서 읽기. 이것은 당신에게 매우 중요합니다.
temcrypt는 Node.js v18 이상 및 최신 웹 브라우저와 모두 호환되므로 다양한 환경에서 사용할 수 있습니다.
temcrypt가 사용하는 유일한 종속성은 AES-256, SHA-256과 같은 암호화 알고리즘 및 일부 인코더를 처리하기 위한 crypto-js이며, fs는 Node.js의 파일 처리에 사용됩니다.
temcrypt를 사용하려면 Node.js 가 설치되어 있어야 합니다. 그런 다음 npm을 사용하여 temcrypt를 설치할 수 있습니다:
npm install temcrypt
그런 다음 코드에 다음과 같이 가져옵니다:
const temcrypt = require("temcrypt");
종속성에 대한 자동 설치 기능이 포함되어 있어 수동으로 설치할 필요가 없습니다. temcrypt.js 라이브러리를 실행하기만 하면 종속성이 자동으로 설치된 다음 코드에서 호출됩니다. 이는 이식성을 위해 이렇게 되었습니다:
node temcrypt.js
또는 다음 스크립트 태그를 포함하여 브라우저에서 직접 temcrypt를 사용할 수 있습니다:
<script src="temcrypt.js"></script>
또는 축소 버전:
<script src="temcrypt.min.js"></script>
CDN에서 웹사이트나 웹 애플리케이션으로 라이브러리를 호출할 수도 있습니다:
<script src="https://cdn.jsdelivr.net/gh/jofpin/temcrypt/temcrypt.min.js"></script>
temcrypt는 정보를 안전하게 보호하고 공개하기 위해 encrypt 및 decrypt와 같은 함수를 제공합니다.
매개변수
dataString (string): 암호화할 문자열 데이터입니다.dataFiles (string): 암호화할 파일 경로입니다. dataString 또는 dataFiles 중 하나를 제공하십시오.mainKey (string): 암호화를 위한 기본 키(비공개)입니다.extraBytes (number, 선택 사항): 암호화에 추가할 추가 바이트입니다. temcrypt 암호화 프로세스에서 사용되는 선택적 매개변수입니다. 암호화된 데이터에 추가 바이트를 추가하여 암호화의 복잡성을 증가시킬 수 있으며, 이를 복호화하는 데 더 많은 처리 능력이 필요합니다. 또한 암호화의 무게를 변경하여 패턴을 잃게 만드는 역할을 합니다.반환값
status (boolean): 성공적인 복호화를 나타내는 true입니다.hash (string): 암호화된 데이터의 무결성 확인을 위해 생성된 고유 해시입니다.dataString (string) 또는 dataFiles: 입력에 따라 복호화된 문자열 또는 복호화된 파일의 파일 경로입니다.updatedEncryptedData (string): 복호화 후 업데이트된 암호화된 데이터입니다. 암호화가 복호화될 때마다 출력이 업데이트됩니다. mainKey가 순서를 변경하고 마지막 복호화 날짜가 저장되기 때문입니다.creationDate (string): 암호화된 데이터의 생성 날짜입니다.lastDecryptionDate (string): 데이터의 마지막 성공적인 복호화 날짜입니다.dataString이 제공된 경우:
hash (string): 암호화된 데이터의 무결성 확인을 위해 생성된 고유 해시입니다.mainKey (string): 암호화에 사용된 기본 키(비공개)입니다.timeKey (): 암호화의 시간 키(비공개)입니다.다음은 temcrypt 사용 방법에 대한 몇 가지 예입니다. 암호화할 때는 키를 입력하고 정보를 암호화한 시와 분을 저장해야 합니다. 정보를 복호화하려면 이후 날짜에 같은 시와 분에 동일한 기본 키를 사용해야 합니다:
const dataToEncrypt = "Sensitive data";
const mainKey = "your_secret_key"; // Insert your custom key
const encryptedData = temcrypt.encrypt({
dataString: dataToEncrypt,
mainKey: mainKey
});
console.log(encryptedData);
const encryptedData = "..."; // Encrypted data obtained from the encryption process
const mainKey = "your_secret_key";
const decryptedData = temcrypt.decrypt({
dataString: encryptedData,
mainKey: mainKey
});
console.log(decryptedData);
파일 암호화:
temcrypt를 사용하여 파일을 암호화하려면 dataFiles 매개변수와 함께 encrypt 함수를 사용할 수 있습니다. 다음은 파일을 암호화하고 암호화 결과를 얻는 방법의 예입니다:
const temcrypt = require("temcrypt");
const filePath = "path/test.txt";
const mainKey = "your_secret_key";
const result = temcrypt.encrypt({
dataFiles: filePath,
mainKey: mainKey,
extraBytes: 128 // Optional: Add 128 extra bytes
});
console.log(result);
이 예제에서 'test.txt'를 암호화하려는 파일의 실제 경로로 바꾸고 'your_secret_key'를 암호화의 기본 키로 설정합니다. result 객체에는 고유 해시, 기본 키, 시간 키 및 암호화된 파일의 파일 경로를 포함한 암호화 세부 정보가 포함됩니다.
파일 복호화:
이전에 temcrypt로 암호화된 파일을 복호화하려면 dataFiles 매개변수와 함께 decrypt 함수를 사용할 수 있습니다. 다음은 파일을 복호화하고 복호화 결과를 얻는 방법의 예입니다:
const temcrypt = require("temcrypt");
const filePath = "path/test.txt.trypt";
const mainKey = "your_secret_key";
const result = temcrypt.decrypt({
dataFiles: filePath,
mainKey: mainKey
});
console.log(result);
이 예제에서 'path/test.txt.trypt'를 암호화된 파일의 실제 경로로 바꾸고 'your_secret_key'를 복호화의 기본 키로 설정합니다. result 객체에는 복호화 상태와 성공한 경우 복호화된 데이터가 포함됩니다.
파일을 성공적으로 복호화하려면 암호화에 사용된 정확한 기본 키를 암호화된 것과 동일한 시와 분에 제공해야 합니다. 기본 키가 잘못되었거나 파일이 변조되었거나 시간이 잘못된 경우 복호화 상태는 false가 되고 복호화된 데이터는 사용할 수 없습니다.
temcrypt는 암호화 및 복호화 외에도 추가 작업을 수행하는 utils 함수를 제공합니다. 이러한 유틸리티 함수는 기능과 사용성을 향상시키도록 설계되었습니다.
함수 목록:
아래에서 세부 사항과 사용 방법을 확인할 수 있습니다.
MainKey 업데이트:
changeKey 유틸리티 함수를 사용하면 암호화된 데이터를 그대로 유지하면서 데이터를 암호화하는 데 사용된 mainKey를 변경할 수 있습니다. 이는 암호화된 데이터의 보안을 강화하거나 mainKey를 주기적으로 업데이트하려는 경우 유용합니다.
dataFiles (선택 사항): temcrypt로 암호화된 파일의 경로입니다.dataString (선택 사항): temcrypt로 생성된 암호화된 문자열입니다.mainKey (string): 데이터를 암호화하는 데 사용된 현재 mainKey입니다.newKey(string): 현재 mainKey를 대체할 새 mainKey입니다.const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const currentMainKey = "my_recent_secret_key";
const newMainKey = "new_recent_secret_key";
// Update mainKey for the encrypted file
const result = temcrypt.utils({
changeKey: {
dataFiles: filePath,
mainKey: currentMainKey,
newKey: newMainKey
}
});
console.log(result.message);
데이터 무결성 검사:
check 유틸리티 함수를 사용하면 temcrypt로 암호화된 데이터의 무결성을 확인할 수 있습니다. 파일이나 문자열이 유효한 temcrypt 암호화 데이터인지 확인합니다.
dataFiles (선택 사항): 확인하려는 파일의 경로입니다.dataString (선택 사항): 확인하려는 암호화된 문자열입니다.const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const encryptedString = "..."; // Encrypted string generated by temcrypt
// Check the integrity of the encrypted File
const result = temcrypt.utils({
check: {
dataFiles: filePath
}
});
console.log(result.message);
// Check the integrity of the encrypted String
const result2 = temcrypt.utils({
check: {
dataString: encryptedString
}
});
console.log(result2.message);
해시 검증:
verify 유틸리티 함수를 사용하면 해시 값을 사용하여 암호화된 데이터의 무결성을 확인할 수 있습니다. 암호화된 데이터 출력이 제공된 해시 값과 일치하는지 확인합니다.
hash (string): 검증할 해시 값입니다.dataFiles (선택 사항): 해시를 확인하려는 파일의 경로입니다.dataString (선택 사항): 해시를 확인하려는 암호화된 문자열입니다.const temcrypt = require("temcrypt");
const filePath = "test.txt.trypt";
const hashToVerify = "..."; // The hash value to verify
// Verify the hash of the encrypted File
const result = temcrypt.utils({
verify: {
hash: hashToVerify,
dataFiles: filePath
}
});
console.log(result.message);
// Verify the hash of the encrypted String
const result2 = temcrypt.utils({
verify: {
hash: hashToVerify,
dataString: encryptedString
}
});
console.log(result2.message);
다음 표는 temcrypt가 다양한 오류 시나리오를 나타내는 데 사용하는 중요한 오류 코드와 해당 오류 메시지를 보여줍니다.
보다 자세한 사용 예제는 examples 디렉토리를 확인하세요.
⚠️ 권장사항
문자열이나 파일의 암호화 크기는 16KB(킬로바이트) 미만이어야 합니다. 만약 더 크다면, 복호화할 충분한 계산 성능이 있어야 합니다. 그렇지 않으면 개인용 컴퓨터가 올바른 기본 키 조합과 적절한 암호화 형식을 찾는 데 필요한 시간을 초과하여 정보를 복호화할 수 없습니다.
ℹ️ 팁
- temcrypt를 사용하면 암호화한 시간과 분에 입력한 키로 이후 날짜에만 정보를 복호화할 수 있습니다.
- 시간에 집중하세요. 복호화는 처음 2~10초 사이에 시작하는 것이 좋습니다. 그러면 올바른 키 형성을 생성하는 데 유리합니다.
이 프로젝트의 콘텐츠는 Creative Commons Attribution 3.0 라이선스에 따라 라이선스가 부여되며, 해당 콘텐츠의 형식을 지정하고 표시하는 데 사용되는 기본 소스 코드는 MIT 라이선스에 따라 라이선스가 부여됩니다.
저작권 (c) 2023, Jose Pino
dataString (string): 암호화된 문자열입니다.extraBytes (number, 선택 사항): 암호화에 사용된 추가 바이트입니다.dataFiles가 제공된 경우:
hash (string): 암호화된 데이터의 무결성 확인을 위해 생성된 고유 해시입니다.mainKey (string): 암호화에 사용된 기본 키입니다.timeKey (string): 암호화의 시간 키입니다.dataFiles (string): 암호화된 파일의 파일 경로입니다.extraBytes (number, 선택 사항): 암호화에 사용된 추가 바이트입니다.status (boolean): 복호화 실패를 나타내는 false입니다.error_code (number): 복호화 실패 이유를 나타내는 오류 코드입니다.message (string): 복호화 실패를 설명하는 설명 오류 메시지입니다.| 코드 | 오류 메시지 | 설명 |
|---|
| 420 | 복호화 시간 제한 초과 | 복호화 프로세스가 허용된 시간 제한보다 오래 걸렸습니다. |
| 444 | 복호화 실패 | 복호화 프로세스에서 오류가 발생했습니다. |
| 777 | 데이터가 제공되지 않음 | 작업에 데이터가 제공되지 않았습니다. |
| 859 | 유효하지 않은 temcrypt 암호화 문자열 | 제공된 문자열이 유효한 temcrypt 암호화 문자열이 아닙니다. |