博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python手记(51)
阅读量:5264 次
发布时间:2019-06-14

本文共 2158 字,大约阅读时间需要 7 分钟。

python通过声音将文件内容隐藏,实现原理是将文件的内容分别插入到声音文件的不同位置中做为当次采样的数据,目前是对英文文本文档加解密

 

#!/usr/bin/env python  # -*- coding: utf-8 -*-#http://blog.csdn.net/myhaspl  #code:myhaspl@qq.com #将文件隐藏在声音之中import waveimport pylab as plimport numpy as npprint 'http://blog.csdn.net/myhaspl'  print 'myhaspl@qq.com'  print    print 'working...' #编码print u'正在将文件编码进声音'print "generate wav data...."# 打开文档fo = wave.open(r"pltest.wav", "wb") file_object = open('test.txt')try:     all_the_text = file_object.read( )finally:     file_object.close( )wdata=map(ord,all_the_text)wdata=np.array(wdata)lwdata=len(wdata)# 设置波形参数#采样率framerate = 44100#声道数nchannels=2#每位宽度sampwidth=2#长度nframes =framerate*4#振幅base_amplitude = 200max_amplitude=128*base_amplitude#每个字符的间隔次数interval=(nframes-10)/lwdata#每周期样本数wave_data=np.zeros((nframes), dtype=np.short)count=0myrand=np.random.rand(nframes)for curpos in xrange(0,nframes):    if curpos % interval==0 and count

 

本博客所有内容是原创,未经书面许可,严禁任何形式的转载

 

>>> runfile(r'K:\book_prog\audio_hy.py', wdir=r'K:\book_prog')
http://blog.csdn.net/myhaspl
myhaspl@qq.com
working...
正在将文件编码进声音
generate wav data....
save new wav files....
正在从声音解码文件
>>> 

上图是对一段python代码文件的加密后形成的声音波形,加密的python代码文件内容如下:

 

#!/usr/bin/env python

#-*- coding: utf-8 -*-
#code:myhaspl@qq.com
import cv2
import numpy as np
fn="test1.jpg"
print 'http://blog.csdn.net/myhaspl'
print 'myhaspl@qq.com'
print
print 'loading %s ...' % fn
print 'working',
img = cv2.imread(fn)
w=img.shape[1]
h=img.shape[0]
sz1=w
sz0=h
EVENTS = ['CV_EVENT_MOUSEMOVE', 'CV_EVENT_LBUTTONDOWN', 'CV_EVENT_RBUTTONDOWN',  'CV_EVENT_MBUTTONDOWN',  'CV_EVENT_LBUTTONUP',
          'CV_EVENT_RBUTTONUP', 'CV_EVENT_MBUTTONUP'  , 'CV_EVENT_LBUTTONDBLCLK','CV_EVENT_RBUTTONDBLCLK','CV_EVENT_MBUTTONDBLCLK']
def callback_function(event,x,y,flag,param):
        global EVENTS
        global img
        
        if EVENTS[event]=='CV_EVENT_LBUTTONDOWN':
                print "(%d,%d):"%(y,x)
                print img[y,x,:]
                cv2.imshow('img', img) 
           
        return
def getdistance(color1,color2):
    return np.sqrt(sum((color1-color2)*(color1-color2)))
cv2.namedWindow('img')     
cv2.setMouseCallback('img', callback_function)
cv2.imshow('img', img)     
cv2.waitKey()  
cv2.destroyAllWindows()

 

转载于:https://www.cnblogs.com/james1207/p/3289819.html

你可能感兴趣的文章
html标签的嵌套规则
查看>>
[Source] Machine Learning Gathering/Surveys
查看>>
HTML <select> 标签
查看>>
类加载机制
查看>>
tju 1782. The jackpot
查看>>
湖南多校对抗赛(2015.03.28) H SG Value
查看>>
hdu1255扫描线计算覆盖两次面积
查看>>
hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411
查看>>
bzoj3224 splay板子
查看>>
程序存储问题
查看>>
Mac版OBS设置详解
查看>>
优雅地书写回调——Promise
查看>>
android主流开源库
查看>>
AX 2009 Grid控件下多选行
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
Ubuntu下面安装eclipse for c++
查看>>
让IE浏览器支持CSS3圆角属性的方法
查看>>