
순수 Python 스테가노그래피 모듈.
Stegano, 순수 Python 스테가노그래피 모듈입니다.
스테가노그래피는 송신자와 의도된 수신자를 제외한 누구도 메시지의 존재를 의심하지 못하도록 숨겨진 메시지를 작성하는 예술이자 과학이며, 은폐를 통한 보안(security through obscurity)의 한 형태입니다. 결과적으로 Stegano가 제공하는 함수는 암호화 없이 메시지를 숨길 뿐입니다. 스테가노그래피는 종종 암호화(cryptography)와 함께 사용됩니다.
$ poetry install stegano
Python 프로그램에서 Stegano를 사용할 수 있습니다.
Stegano를 명령줄 도구로만 설치하려면:
$ pipx install stegano
pipx는 Python 패키지에서 제공하는 스크립트(시스템 전체에서 사용 가능)를 별도의 virtualenv에 설치하여 시스템 및 다른 패키지로부터 격리합니다.
튜토리얼이 제공됩니다.
Python 프로그램에서 Stegano를 사용하려면 적절한 스테가노그래피 기법을 import하기만 하면 됩니다. 예를 들어:
>>> from stegano import lsb
>>> secret = lsb.hide("./tests/sample-files/Lenna.png", "Hello World")
>>> secret.save("./Lenna-secret.png")
>>>
>>> clear_message = lsb.reveal("./Lenna-secret.png")
가역적 데이터 은닉(메시지를 추출한 후 원본 커버를 정확히 복원할 수 있음)에는 히스토그램 이동(histogram-shifting) 기법을 사용하세요:
>>> from stegano import rdh
>>> secret = rdh.hide("./tests/sample-files/Lenna-grayscale.png", "Hello World")
>>> secret.save("./Lenna-secret.png")
>>>
>>> clear_message = rdh.reveal("./Lenna-secret.png")
>>> cover = rdh.recover("./Lenna-secret.png") # restores the original image
$ stegano-lsb hide -i ./tests/sample-files/Lenna.png -m "Secret Message" -o Lena1.png
$ stegano-lsb reveal -i Lena1.png
Secret Message
$ stegano-rdh hide -i ./tests/sample-files/Lenna-grayscale.png -m "Secret Message" -o stego.png
$ stegano-rdh reveal -i stego.png
Secret Message
$ stegano-rdh recover -i stego.png -o cover.png # cover.png == the original image
$ stegano-lsb hide -i ./tests/sample-files/Lenna.png -m 'Secret Message' --generator eratosthenes -o Lena2.png
메시지는 에라토스테네스의 체가 설명하는 집합을 따라 그림 전체에 분산됩니다. 다른 집합도 사용할 수 있으며, 자신만의 생성기를 사용할 수도 있습니다.
이렇게 하면 스테그분석(steganalysis)이 더욱 복잡해집니다.
$ python -m unittest discover -v
정적 타입 검사기 실행:
$ mypy stegano
기여는 언제나 환영합니다. Stegano에 기여하려면 poetry를 사용하여 Python 가상 환경에 설치할 것을 적극 권장합니다.
원하시고 Stegano가 마음에 드신다면 GitHub Sponsors를 통해 기부할 수 있습니다:
또는 비트코인으로 다음 주소로 기부해 주세요:
bc1q56u6sj7cvlwu58v5lemljcvkh7v2gc3tv8mj0e
감사합니다!
이 소프트웨어는 GNU General Public License version 3에 따라 라이선스가 부여됩니다.
Copyright (C) 2010-2026 Cédric Bonhomme
자세한 내용은 작성자 및 기여자 목록에서 확인할 수 있습니다.