Python 音频隐写术实现:基于 LSB 算法的敏感信息加密传输方案
一、背景与需求
在信息安全场景中,传统加密方式常因密码明文传输导致泄露风险。例如,通过邮件或即时通讯工具发送加密文件时,若密码单独传输,极易被截获。本方案利用 Python 实现音频隐写术,将秘密信息嵌入音频文件的最低有效位(LSB)中,实现信息的隐蔽传递。
二、核心代码逻辑
1. 加密模块 (Encrypt.py)
该模块负责将文本信息转换为二进制数据,并替换音频采样值的最低位。
# Encrypt.py - 将秘密信息嵌入音频的 LSB 位
def encrypt_using_lsb(self, output_dir: str, file_name: str):
# 1. 将秘密文本转换为 8 位二进制 numpy 数组
m1, n1 = self.secret_as_nparr.shape
secret_reshape = self.secret_as_nparr.reshape(m1 * n1, 1)
# 2. 读取音频文件并展平为 1 维数组
samplerate, self.mess_as_nparr = wavfile.read(self.message_audio_file_path)
m2, n2 = self.mess_as_nparr.shape
message_reshape = self.mess_as_nparr.reshape(m2 * n2, 1)
# 3. LSB 替换核心逻辑
k = 0
for i in range(m2 * n2):
if k < m1 * n1:
# 确保秘密信息能完整嵌入
# &0xFE 清零最低位,| secret_bit 写入秘密位
message_reshape[i][0] = message_reshape[i][0] & 0xFE | secret_reshape[k][0]
k += 1
else:
break
# 4. 恢复原始维度并保存
message_reshape = message_reshape.reshape(m2, n2)
wavfile.write(os.path.join(output_dir_path, file_name), samplerate, message_reshape)

