matlab对信号进行低通滤波,用matlab设计低通滤波器论文
Python尝试过做音频的LSB隐藏算法,但过程曲折。虽然结果还是有些瑕疵,毕竟不习惯音频信号处理,但是结果最终还是成功了。
1.环境
Windows10操作系统,pycharm编辑器,python3.9,第三方库:librosa,bitarray
1.1 bitarray的安装
安装Bitarray是为了解决英文字符串和二进制字符串之间的转换问题。
Pip安装二进制文件
1.2安装librosa
这是一个Python模块,通常用于分析音频信号,但倾向于音乐。这包括用于构建音乐信息搜索(MIR)系统的基本要素。
Pip安装库
2.转码函数defstr 2 bitarray(s):s . replace(r \ n ,)ret=bitarray(。join)[蓝兔] int (1 hard)
Bitarray2str))功能:可以将解密后的二进制字符串转码为明文。
3.原则
以上是图像的lsb隐藏算法,音频也差不多。
总之,如果音频采样点是32位浮点型,替换不太重要的位置对音频影响不大,极难找到。例如,从0.005689更改为0.005680。
4.算法为importlibrosafrommbitarrayimportbitarrayimportsoundfilesfimpportnumpyasnpbit _ float={ 00 3360.0001, 01 11 :00004 } float _ bit={ 8: 00 ,9:00 ,10:00 ,1: 00 83: 10 ,29:10 ,30:10 ,31:10 ,38336011 ,39360 11 对于key,valueinbit _ float . items(:if loan==value:returnkeydeflsb(音频文件,hidefile)): data,Sr=Librosa.load(音频文件)#隐藏文本infor= withopen)隐藏文件, Rb )ASF:infor=str 2 bitarray(f . read)。decode(utf-8))start=0 end=2 forIinrange(len(infor)))=bit 2 float(infor[start:end])start=2 # librosa . output . write _ example . wav ,data (SF.write ) samplerate=sr,sumplerate hidedfile(:data,Sr=librosa . load)audio file)hidedata,Sr1=librosa . load(hidedfile)infor= forIinrange)len)data):item=int(hidedata)(I))
LSB)“音频载体_WAV格式”,“密文():加密函数
UNLSB(“加密前的音频”、“加密后的音频”):解密函数
4.1由于python没有指针的缺陷,没有好的办法对浮点采样点进行一些位操作。这里,字典bit _ float={00: 0.00001, 01: 0.00002, 10 是用推测方法定义的。
每两位二进制转换后的浮点型加到原始采样点,提取时以原始采样点和加密采样点的差值作为判断标准。这个缺点很明显。为了在第一次解码中导出明文,需要与原载波进行比较。其次,因为浮点加法,所以得到的是近似值,不稳定。第三,如果不是某些比特的运算,信息利用率不高,嵌入容量低。
为了解决浮点型加减法中近似计算的弊端,从隐藏信息采样点中减去原始采样点时,原始采样点为* 10,000,000。
int()hidedata[I]-data[I]* 10000000)成整数,取8,9,10,11为约10,取18,19,20,21为20,28,29,30,21,为转换写字典。
float _ bit={ 8:00、9:00、10:00、11336000、18336001、19336001、20336013:00 .
4.2加密前后波形无明显差异。
考试中的英语都是可以的。
Librosa_test.py-系统安全文档资源-CSDN下载
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。