Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SOUND TRANSMISSION-BASED VERIFICATION METHOD
Document Type and Number:
WIPO Patent Application WO/2014/036913
Kind Code:
A1
Abstract:
A sound transmission-based verification method comprises: a client receiving a data packet set generated by a server according to request information, and converting the data packet set into audio data and play the audio data; a dynamic password apparatus collecting the audio data played by the client, decoding the audio data to obtain data information, and when the information is integral, generating and outputting display information; after the client receives a dynamic password, the client sending the dynamic password to the server; and the server generating, according to the request information, a verifying dynamic password to verify whether the dynamic password is valid, and if the dynamic password is valid, performing an operation according to the request information.

Inventors:
LU ZHOU (CN)
YU HUAZHANG (CN)
Application Number:
PCT/CN2013/082723
Publication Date:
March 13, 2014
Filing Date:
August 30, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FEITIAN TECHNOLOGIES CO LTD (CN)
International Classes:
H04L29/06; H04L9/32
Foreign References:
CN102801530A2012-11-28
CN101620705A2010-01-06
CN202309734U2012-07-04
CN101197667A2008-06-11
JP2005165850A2005-06-23
Attorney, Agent or Firm:
BEIJING WANG IP AGENCY, LTD. (CN)
北京王景林知识产权代理事务所 (CN)
Download PDF:
Claims:
权利要求书

1. 一种基于声音传输的认证方法, 具体包括:

步骤 A: 客户端接收到请求信息后发送请求信息报文给服务器;

步骤 B: 所述服务器提取并保存所述请求信息报文中的请求信息, 并根据所述请求信息生成数据 包组返回给所述客户端;

步骤 C: 所述客户端将所述数据包组转换成音频数据并循环播放, 等待接收动态口令; 步骤 D: 动态口令装置采集所述客户端播放的音频数据并对其解码得到数据信息, 判断所述数据 信息是否完整, 是则生成显示信息并输出, 且当在预定时间内接收到确认信息时根据所述数据信息生 成动态口令并输出, 否则输出提示数据信息不完整的信息;

步骤 E: 所述客户端接收到动态口令后将其发送给所述服务器;

步骤 F: 所述服务器接收到动态口令后, 根据所述请求信息生成验证动态口令并根据所述验证动 态口令验证所述动态口令是否合法, 是则所述服务器根据所述请求信息执行操作, 否则所述服务器向 所述客户端发送提示动态口令不合法的信息;

步骤 G: 所述客户端接收到提示动态口令不合法的信息后输出相应提示信息。

2. 根据权利要求 1所述的方法, 其特征在于, 所述步骤 B和所述步骤 C替换为:

步骤 B' : 所述服务器提取并保存所述请求信息报文中的请求信息, 根据所述请求信息生成数据 包组, 并将所述数据包组转换成音频数据返回给所述客户端;

步骤 C' : 所述客户端接收到音频数据后循环播放所述音频数据, 等待接收动态口令。

3. 根据权利要求 1所述的方法, 其特征在于, 所述将所述数据包组转换成音频数据并循环播放 具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则将第一预设数组存储到数据缓冲区, 若为 0则将 第二预设数组存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的最后一个数据位, 是则编码完成, 按照预设采样频 率及采样大小循环输出所述数据缓冲区中的数据, 否则将下一数据位作为当前数据位, 返回执行②。

4. 根据权利要求 2所述的方法, 其特征在于, 所述将所述数据包组转换成音频数据并循环播放 具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则将第一预设数组存储到数据缓冲区, 若为 0则将 第二预设数组存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的最后一个数据位, 是则编码完成, 按照预设采样频 率及采样大小循环输出所述数据缓冲区中的数据, 否则将下一数据位作为当前数据位, 返回执行②。

5. 根据权利要求 1 所述的方法, 其特征在于, 所述将所述数据包组转换成音频数据并循环播放 具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第一预设算法、 第一预设数据和第一预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第一预设算法、 第二预设数据和第 一预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的数据,否则将下一数据位作为当前数据位,返回执行②。

6. 根据权利要求 2所述的方法, 其特征在于, 所述将所述数据包组转换成音频数据并循环播放 具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第一预设算法、 第一预设数据和第一预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第一预设算法、 第二预设数据和第 一预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的数据,否则将下一数据位作为当前数据位,返回执行②。

7. 根据权利要求 5所述的方法, 其特征在于,

所述根据第一预设算法、 第一预设数据和第一预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

一 ^ 计算 2 π 和所述第一预设数据的商, 将计算结果赋值给第一变量, 将第三预设数据赋值给第 一 . 计算所述第一变量的值和所述第二变量的值的乘积并将计算结果赋值给第三变量,计算所述 第三变量的正弦值并将计算结果赋值给第四变量,计算所述第四变量和所述第一预设幅值的乘积并将 计算结果赋值给第五变量, 所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的值递增; i i i. 判断所述第二变量的值是否小于所述第一预设数据, 是则返回执行 i i, 否则计算完成; 所述根据第一预设算法、 第二预设数据和第一预设幅值进行计算, 并将计算结果顺序存储到所述 数据缓冲区具体包括:

一 ^ 计算 2 π 和所述第二预设数据的商, 将计算结果赋值给第一变量, 将第三预设数据赋值给第 一 . 计算所述第一变量的值和所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所述 第三变量的正弦值并将计算结果赋值给第四变量,计算所述第四变量和所述第一预设幅值的乘积并将 计算结果赋值给第五变量,将所述第五变量的当前值存储到所述数据缓冲区,所述第二变量的值递增;

i i i. 判断所述第二变量的值是否小于所述第二预设数据, 是则返回执行 i i, 否则计算完成。

8. 根据权利要求 6所述的方法, 其特征在于,

所述根据第一预设算法、 第一预设数据和第一预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

一 ^ 计算 2 π 和所述第一预设数据的商, 将计算结果赋值给第一变量, 将第三预设数据赋值给第 一 . 计算所述第一变量的值和所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所述 第三变量的正弦值并将计算结果赋值给第四变量,计算所述第四变量和所述第一预设幅值的乘积并将 计算结果赋值给第五变量, 所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的值递增; i i i. 判断所述第二变量的值是否小于所述第一预设数据, 是则返回执行 i i, 否则计算完成; 所述根据第一预设算法、 第二预设数据和第一预设幅值进行计算, 并将计算结果顺序存储到所述 数据缓冲区具体包括:

一 ^ 计算 2 π 和所述第二预设数据的商, 将计算结果赋值给第一变量, 将第三预设数据赋值给第 一 . 计算所述第一变量的值和所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所述 第三变量的正弦值并将计算结果赋值给第四变量,计算所述第四变量和所述第一预设幅值的乘积并将 计算结果赋值给第五变量,将所述第五变量的当前值存储到所述数据缓冲区,所述第二变量的值递增;

i i i. 判断所述第二变量的值是否小于所述第二预设数据, 是则返回执行 i i, 否则计算完成。

9. 根据权利要求 1 所述的方法, 其特征在于, 所述将所述数据包组转换成音频数据并循环播放 具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第二预设算法、 第四预设数据和第二预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第二预设算法、 第四预设数据和第 三预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的数据,否则将下一数据位作为当前数据位,返回执行②。

10. 根据权利要求 2所述的方法, 其特征在于, 所述将所述数据包组转换成音频数据并循环播放 具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第二预设算法、 第四预设数据和第二预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第二预设算法、 第四预设数据和第 三预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的数据,否则将下一数据位作为当前数据位,返回执行②。

11. 根据权利要求 9所述的方法, 其特征在于,

所述根据第二预设算法、 第四预设数据和第二预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

i. 计算 2 π 和所述第四预设数据的商并将计算结果赋值给第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值和所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四变量, 计算所述第四变量的值和所述第二预设幅值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第四预设数据, 是则返回执行 i i i, 否则计算完成; 所述根据第二预设算法、 第四预设数据和第三预设幅值进行计算, 并将计算结果顺序存储到所述 数据缓冲区具体包括:

i. 计算 2 π 和所述第四预设数据的商并将计算结果赋值给第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值和所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四变量, 计算所述第四变量的值和所述第三预设幅值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第四预设数据, 是则返回执行 i i i, 否则计算完成。

12. 根据权利要求 10所述的方法, 其特征在于,

所述根据第二预设算法、 第四预设数据和第二预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

i. 计算 2 π 和所述第四预设数据的商并将计算结果赋值给第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值和所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四变量, 计算所述第四变量的值和所述第二预设幅值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第四预设数据, 是则返回执行 i i i, 否则计算完成; 所述根据第二预设算法、 第四预设数据和第三预设幅值进行计算, 并将计算结果顺序存储到所述 数据缓冲区具体包括:

i. 计算 2 π 和所述第四预设数据的商并将计算结果赋值给第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值和所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四变量, 计算所述第四变量的值和所述第三预设幅值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第四预设数据, 是则返回执行 i i i, 否则计算完成。

13. 根据权利要求 1所述的方法, 其特征在于, 所述将所述数据包组转换成音频数据并循环播放 具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第三预设算法、 第五预设数据和第四预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第四预设算法、 第五预设数据和第 四预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的数据,否则将下一数据位作为当前数据位,返回执行②。

14. 根据权利要求 2所述的方法, 其特征在于, 所述将所述数据包组转换成音频数据并循环播放 具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第三预设算法、 第五预设数据和第四预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第四预设算法、 第五预设数据和第 四预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的数据,否则将下一数据位作为当前数据位,返回执行②。

15. 根据权利要求 13所述的方法, 其特征在于,

所述根据第三预设算法、 第五预设数据和第四预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

i. 计算 2 π 和所述第五预设数据的商并将计算结果赋值给第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值与所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所 述第三变量的余弦值并将计算结果赋值给第四变量计算所述第四变量的值和所述第四预设幅值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第五预设数据, 是则返回执行 i i i, 否则计算完成; 所述根据第四预设算法、 第五预设数据和第四预设幅值进行计算, 并将计算结果顺序存储到所述 数据缓冲区具体包括:

i. 计算 2 π 和所述第五预设数据的商并将计算结果赋值给第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值与所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四变量计算所述第四变量的值和所述第四预设幅值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第五预设数据, 是则返回执行 i i i, 否则计算完成。

16. 根据权利要求 14所述的方法, 其特征在于,

所述根据第三预设算法、 第五预设数据和第四预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

i. 计算 2 π 和所述第五预设数据的商并将计算结果赋值给第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值与所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所 述第三变量的余弦值并将计算结果赋值给第四变量计算所述第四变量的值和所述第四预设幅值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第五预设数据, 是则返回执行 i i i, 否则计算完成; 所述根据第四预设算法、 第五预设数据和第四预设幅值进行计算, 并将计算结果顺序存储到所述 数据缓冲区具体包括:

i. 计算 2 π 和所述第五预设数据的商并将计算结果赋值给第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值与所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四变量计算所述第四变量的值和所述第四预设幅值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的 值递增;

iv.判断所述第二变量的值是否小于所述第五预设数据, 是则返回执行 i i i, 否则计算完成。

17. 根据权利要求 1所述的方法, 其特征在于, 所述动态口令装置根据所述数据信息生成动态口 令具体包括:

所述动态口令装置采用内置的算法根据所述数据信息和预先存储的种子计算生成动态口令, 或者 所述动态口令装置采用内置的算法根据所述数据信息、 当前动态因子和预先存储的种子进行加密 运算, 生成动态口令, 其中所述动态因子为时间因子或事件因子。

18. 根据权利要求 2所述的方法, 其特征在于, 所述动态口令装置根据所述数据信息生成动态口 令具体包括:

所述动态口令装置采用内置的算法根据所述数据信息和预先存储的种子计算生成动态口令, 或者 所述动态口令装置采用内置的算法根据所述数据信息、 当前动态因子和预先存储的种子进行加密 运算, 生成动态口令, 其中所述动态因子为时间因子或事件因子。

19. 根据权利要求 17所述的方法, 其特征在于, 所述服务器根据所述请求信息生成验证动态口 令具体包括:

所述服务器采用内置的算法根据所述请求信息和预先存储的种子计算生成验证动态口令, 或者 所述服务器采用内置的算法根据所述请求信息、 当前动态因子和预先存储的种子进行加密运算, 生成验证动态口令, 其中, 所述动态因子为时间因子或事件因子。

20. 根据权利要求 18所述的方法, 其特征在于, 所述服务器根据所述请求信息生成验证动态口 令具体包括:

所述服务器采用内置的算法根据所述请求信息和预先存储的种子计算生成验证动态口令, 或者 所述服务器采用内置的算法根据所述请求信息、 当前动态因子和预先存储的种子进行加密运算, 生成验证动态口令, 其中, 所述动态因子为时间因子或事件因子。

21. 根据权利要求 19所述的方法, 其特征在于, 所述验证动态口令为一个动态口令或一组动态 口令。

22. 根据权利要求 20所述的方法, 其特征在于, 所述验证动态口令为一个动态口令或一组动态 口令。

23. 根据权利要求 21所述的方法, 其特征在于, 所述服务器根据所述验证动态口令验证所述动 态口令是否合法具体包括:

当所述验证动态口令为一个动态口令时, 判断所述动态口令与所述验证动态口令是否相同, 若相 同则所述动态口令合法, 若不相同则所述动态口令不合法;

当所述验证动态口令为一组动态口令时,判断所述验证动态口令中是否有与所述动态口令相同的 动态口令, 若有则所述动态口令合法, 若没有则所述动态口令不合法。

24. 根据权利要求 22所述的方法, 其特征在于, 所述服务器根据所述验证动态口令验证所述动 态口令是否合法具体包括:

当所述验证动态口令为一个动态口令时, 判断所述动态口令与所述验证动态口令是否相同, 若相 同则所述动态口令合法, 若不相同则所述动态口令不合法;

当所述验证动态口令为一组动态口令时,判断所述验证动态口令中是否有与所述动态口令相同的 动态口令, 若有则所述动态口令合法, 若没有则所述动态口令不合法。

25. 一种基于声音传输的认证方法, 具体包括:

步骤 a: 客户端接收到请求信息后存储所述请求信息, 根据所述请求信息生成数据包组, 并将所 述数据包组转换成音频数据循环播放, 等待接收动态口令;

步骤 b: 动态口令装置采集所述客户端播放的音频数据并对其解码得到数据信息, 判断所述数据 信息是否完整, 是则生成显示信息输出且当在预定时间内接收到确认信息时根据所述数据信息生成动 态口令并输出, 否则输出提示数据信息不完整的信息;

步骤 c: 所述客户端接收到动态口令后将其与所述请求信息发送给所述服务器;

步骤 d: 所述服务器接收到动态口令和请求信息后, 根据所述请求信息生成验证动态口令并根据 所述验证动态口令验证所述动态口令是否合法, 是则所述服务器根据所述请求信息执行操作, 否则所 述服务器向所述客户端发送提示动态口令不合法的信息;

步骤 e : 所述客户端接收到提示动态口令不合法的信息后输出相应提示信息。

26. 根据权利要求 25所述的方法, 其特征在于, 所述将所述数据包组转换成音频数据并循环播 放具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则将第一预设数组存储到数据缓冲区, 若为 0则将 第二预设数组存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的最后一个数据位, 是则编码完成, 按照预设采样频 率及采样大小循环输出所述数据缓冲区中的数据, 否则将下一数据位作为当前数据位, 返回执行②。

27. 根据权利要求 25所述的方法, 其特征在于, 所述将所述数据包组转换成音频数据并循环播 放具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第一预设算法、 第一预设数据和第一预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第一预设算法、 第二预设数据和第 一预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的数据,否则将下一数据位作为当前数据位,返回执行②。

28. 根据权利要求 27所述的方法, 其特征在于,

所述根据第一预设算法、 第一预设数据和第一预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

一 ^ 计算 2 π 和所述第一预设数据的商, 将计算结果赋值给第一变量, 将第三预设数据赋值给第 一 . 计算所述第一变量的值和所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所述 第三变量的正弦值并将计算结果赋值给第四变量, 计算所述第四变量和所述第一预设幅值的乘积并将 计算结果赋值给第五变量, 所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的值递增; i i i. 判断所述第二变量的值是否小于所述第一预设数据, 是则返回执行 ii, 否则计算完成; 所述根据第一预设算法、 第二预设数据和第一预设幅值进行计算, 并将计算结果顺序存储到所述 数据缓冲区具体包括:

一 ^ 计算 2 π 和所述第二预设数据的商, 将计算结果赋值给第一变量, 将第三预设数据赋值给第 一 . 计算所述第一变量的值和所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所述 第三变量的正弦值并将计算结果赋值给第四变量,计算所述第四变量和所述第一预设幅值的乘积并将 计算结果赋值给第五变量,将所述第五变量的当前值存储到所述数据缓冲区,所述第二变量的值递增;

i i i. 判断所述第二变量的值是否小于所述第二预设数据, 是则返回执行 i i, 否则计算完成。

29. 根据权利要求 25所述的方法, 其特征在于, 所述将所述数据包组转换成音频数据并循环播 放具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第二预设算法、 第四预设数据和第二预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第二预设算法、 第四预设数据和第 三预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的数据,否则将下一数据位作为当前数据位,返回执行②。

30. 根据权利要求 29所述的方法, 其特征在于,

所述根据第二预设算法、 第四预设数据和第二预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

i. 计算 2 π 和所述第四预设数据的商并将计算结果赋值给第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值和所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四变量, 计算所述第四变量的值和所述第二预设幅值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第四预设数据, 是则返回执行 i i i, 否则计算完成; 所述根据第二预设算法、 第四预设数据和第三预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

i. 计算 2 π 和所述第四预设数据的商并将计算结果赋值给第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值和所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四变量, 计算所述第四变量的值和所述第三预设幅值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第四预设数据, 是则返回执行 i i i, 否则计算完成。

31. 根据权利要求 25所述的方法, 其特征在于, 所述将所述数据包组转换成音频数据并循环播 放具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第三预设算法、 第五预设数据和第四预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第四预设算法、 第五预设数据和第 四预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的数据,否则将下一数据位作为当前数据位,返回执行②。

32. 根据权利要求 31所述的方法, 其特征在于,

所述根据第三预设算法、 第五预设数据和第四预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

i. 计算 2 π 和所述第五预设数据的商并将计算结果赋值给第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值与所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所 述第三变量的余弦值并将计算结果赋值给第四变量计算所述第四变量的值和所述第四预设幅值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于第五预设数据, 是则返回执行 i i i, 否则迭代过程结束; 所述根据第四预设算法、 第五预设数据和第四预设幅值进行计算, 并将计算结果顺序存储到所述 数据缓冲区具体包括:

i. 计算 2 π 和所述第五预设数据的商并将计算结果赋值给第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值与所述第二变量的值的乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四变量计算所述第四变量的值和所述第四预设幅值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于第五预设数据, 是则返回执行 i i i, 否则计算完成。

33. 根据权利要求 25所述的方法, 其特征在于, 所述动态口令装置根据所述数据信息生成动态 口令具体包括:

所述动态口令装置采用内置的算法根据所述数据信息和预先存储的种子计算生成动态口令, 或者 所述动态口令装置采用内置的算法根据所述数据信息、 当前动态因子和预先存储的种子进行加密 运算, 生成动态口令, 其中所述动态因子为时间因子或事件因子。

34. 根据权利要求 33所述的方法, 其特征在于, 所述服务器根据所述请求信息生成验证动态口 令具体包括:

所述服务器采用内置的算法根据所述请求信息和预先存储于的种子计算生成验证动态口令, 或者 所述服务器采用内置的算法根据所述请求信息、 当前动态因子和预先存储的种子进行加密运算, 生成验证动态口令, 其中, 所述动态因子为时间因子或事件因子。

35. 根据权利要求 34所述的方法, 其特征在于, 所述验证动态口令为一个动态口令或一组动态 口令。

36. 根据权利要求 35所述的方法, 其特征在于, 所述服务器根据所述验证动态口令验证所述动 态口令是否合法具体包括:

当所述验证动态口令为一个动态口令时, 判断所述动态口令与所述验证动态口令是否相同, 若相 同则所述动态口令合法, 若不相同则所述动态口令不合法;

当所述验证动态口令为一组动态口令时, 判断所述验证动态口令中是否有与所述动态口令相同的动态 口令, 若有则所述动态口令合法, 若没有则所述动态口令不合法。

Description:
一种基于声音传输的认证方法

技术领域

本发明涉及信息安全领域, 尤其涉及一种基于声音传输的认证方法。

背景技术

OTP全称 One-t ime Password, 也称动态口令, 是动态令牌根据专门的算法每隔特定时间生成 一 个不可预测的随机数字组合, 每个口令只能使用一次, 用户进行认证时候, 除输入账号和静态密码之 外, 必须要求输入动态密码, 只有通过系统验证, 才可以正常登录或者交易, 从而有效保证用户身份 的合法性和唯一性。 动态令牌最大的优点在于, 用户每次使用的口令都不相同, 使得不法分子无法仿 冒合法用户的身份。 动态口令认证技术被认为是目前能够最有效解 决用户的身份认证方式之一, 可以 有效防范黑客木马盗窃用户账户口令、 假网站等多种网络问题, 导致用户的财产或者资料的损失。 目 前被广泛运用在网银、 网游、 电信运营商、 电子政务、 企业等领域。

比起传统的动态令牌, 用户信息参与动态口令生成的动态令牌安全性 更高, 其在生成动态口令之 前需接收用户信息, 目前, 用户信息参与动态口令生成的动态令牌都自带 键盘, 用户信息由用户通过 动态令牌自带的键盘自行输入。

发明人在实现本发明的过程中, 发现当所需输入的用户信息较多, 数据量较大时, 人为输入用户 信息速度慢、 错误率高, 且由于输入错误的数据不易察觉和更改, 浪费用户时间的同时也可能带来不 必要的麻烦。

发明内容

本发明的目的是提供一种基于声音传输的认证 方法, 其可解决相关现有技术的动态口令的认证方 法需要人工输入认证数据, 导致认证结果易出错、 时间及人力成本较高的问题, 进而实现降低成本, 提高认证安全性的效果。。

本发明采用的技术方案如下:

一种基于声音传输的认证方法, 具体包括:

步骤 A: 客户端接收到请求信息后发送请求信息报文给 服务器;

步骤 B: 所述服务器提取并保存所述请求信息报文中的 请求信息, 并根据所述请求信息生成数据 包组返回给所述客户端;

步骤 C: 所述客户端将所述数据包组转换成音频数据并 循环播放, 等待接收动态口令; 步骤 D: 动态口令装置采集所述客户端播放的音频数据 并对其解码得到数据信息, 判断所述数据 信息是否完整, 是则生成显示信息并输出, 且当在预定时间内接收到确认信息时根据所述 数据信息生 成动态口令并输出, 否则输出提示数据信息不完整的信息;

步骤 E: 所述客户端接收到动态口令后将其发送给所述 服务器;

步骤 F: 所述服务器接收到动态口令后, 根据所述请求信息生成验证动态口令并根据所 述验证动 态口令验证所述动态口令是否合法, 是则所述服务器根据所述请求信息执行操作, 否则所述服务器向 所述客户端发送提示动态口令不合法的信息;

步骤 G: 所述客户端接收到提示动态口令不合法的信息 后输出相应提示信息。

进一步地, 所述步骤 B和所述步骤 C替换为:

步骤 B ' : 所述服务器提取并保存所述请求信息报文中的 请求信息, 根据所述请求信息生成数据 包组, 并将所述数据包组转换成音频数据返回给所述 客户端;

步骤 C ' : 所述客户端接收到音频数据后循环播放所述音 频数据, 等待接收动态口令。

其中, 所述将所述数据包组转换成音频数据并循环播 放具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则将第一预设数组存储到数据缓冲区, 若为 0则将 第二预设数组存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的 最后一个数据位, 是则编码完成, 按照预设采样频 率及采样大小循环输出所述数据缓冲区中的数 据, 否则将下一数据位作为当前数据位, 返回执行②。

或者所述将所述数据包组转换成音频数据并循 环播放具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第一预设算法、 第一预设数据和第一预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第一预设算法、 第二预设数据和第 一预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的 最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的 数据,否则将下一数据位作为当前数据位,返 回执行②。

所述根据第一预设算法、 第一预设数据和第一预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

i. 计算 2 π 和所述第一预设数据的商, 将计算结果赋值给第一变量, 将第三预设数据赋值给第 i i. 计算所述第一变量的值和所述第二变量的值的 乘积并将计算结果赋值给第三变量, 计算所述 第三变量的正弦值并将计算结果赋值给第四变 量,计算所述第四变量和所述第一预设幅值的 乘积并将 计算结果赋值给第五变量, 所述第五变量的当前值存储到所述数据缓冲区 , 所述第二变量的值递增; i i i. 判断所述第二变量的值是否小于所述第一预设 数据, 是则返回执行 i i, 否则计算完成; 所述根据第一预设算法、 第二预设数据和第一预设幅值进行计算, 并将计算结果顺序存储到所述 数据缓冲区具体包括:

一 ^ 计算 2 π 和所述第二预设数据的商, 将计算结果赋值给第一变量, 将第三预设数据赋值给第 一 . 计算所述第一变量的值和所述第二变量的值的 乘积并将计算结果赋值给第三变量, 计算所述 第三变量的正弦值并将计算结果赋值给第四变 量,计算所述第四变量和所述第一预设幅值的 乘积并将 计算结果赋值给第五变量,将所述第五变量的 当前值存储到所述数据缓冲区,所述第二变量 的值递增;

i i i. 判断所述第二变量的值是否小于所述第二预设 数据, 是则返回执行 i i, 否则计算完成。 或者, 所述将所述数据包组转换成音频数据并循环播 放具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第二预设算法、 第四预设数据和第二预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第二预设算法、 第四预设数据和第 三预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的 最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的 数据,否则将下一数据位作为当前数据位,返 回执行②。

所述根据第二预设算法、 第四预设数据和第二预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

i. 计算 2 π 和所述第四预设数据的商并将计算结果赋值给 第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值和所述第二变量的值的 乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四 变量, 计算所述第四变量的值和所述第二预设幅值的 乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲 区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第四预设 数据, 是则返回执行 i i i, 否则计算完成; 所述根据第二预设算法、 第四预设数据和第三预设幅值进行计算, 并将计算结果顺序存储到所述 数据缓冲区具体包括:

i. 计算 2 π 和所述第四预设数据的商并将计算结果赋值给 第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值和所述第二变量的值的 乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四 变量, 计算所述第四变量的值和所述第三预设幅值的 乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲 区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第四预设 数据, 是则返回执行 i i i, 否则计算完成。 或者, 所述将所述数据包组转换成音频数据并循环播 放具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第三预设算法、 第五预设数据和第四预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第四预设算法、 第五预设数据和第 四预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的 最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的 数据,否则将下一数据位作为当前数据位,返 回执行②。

所述根据第三预设算法、 第五预设数据和第四预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

i. 计算 2 π 和所述第五预设数据的商并将计算结果赋值给 第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值与所述第二变量的值的 乘积并将计算结果赋值给第三变量, 计算所 述第三变量的余弦值并将计算结果赋值给第四 变量计算所述第四变量的值和所述第四预设幅 值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲 区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第五预设 数据, 是则返回执行 i i i, 否则计算完成; 所述根据第四预设算法、 第五预设数据和第四预设幅值进行计算, 并将计算结果顺序存储到所述 数据缓冲区具体包括:

i. 计算 2 π 和所述第五预设数据的商并将计算结果赋值给 第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值与所述第二变量的值的 乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四 变量计算所述第四变量的值和所述第四预设幅 值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲 区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第五预设 数据, 是则返回执行 i i i, 否则计算完成。 所述动态口令装置根据所述数据信息生成动态 口令具体包括:

所述动态口令装置采用内置的算法根据所述数 据信息和预先存储的种子计算生成动态口令, 或者 所述动态口令装置采用内置的算法根据所述数 据信息、 当前动态因子和预先存储的种子进行加密 运算, 生成动态口令, 其中所述动态因子为时间因子或事件因子。

所述服务器根据所述请求信息生成验证动态口 令具体包括:

所述服务器中采用内置的算法根据所述请求信 息和预先存储的种子计算生成验证动态口令, 或者 所述服务器采用内置的算法根据所述请求信息 、 当前动态因子和预先存储的种子进行加密运算 , 生成验证动态口令, 其中, 所述动态因子为时间因子或事件因子。

所述验证动态口令为一个动态口令或一组动态 口令。

所述服务器根据所述验证动态口令验证所述动 态口令是否合法具体包括:

当所述验证动态口令为一个动态口令时, 判断所述动态口令与所述验证动态口令是否相 同, 若相 同则所述动态口令合法, 若不相同则所述动态口令不合法;

当所述验证动态口令为一组动态口令时,判断 所述验证动态口令中是否有与所述动态口令相 同的 动态口令, 若有则所述动态口令合法, 若没有则所述动态口令不合法。

一种基于声音传输的认证方法, 具体包括:

步骤 a: 客户端接收到请求信息后存储所述请求信息, 根据所述请求信息生成数据包组, 并将所 述数据包组转换成音频数据循环播放, 等待接收动态口令;

步骤 b: 动态口令装置采集所述客户端播放的音频数据 并对其解码得到数据信息, 判断所述数据 信息是否完整, 是则生成显示信息输出且当在预定时间内接收 到确认信息时根据所述数据信息生成动 态口令并输出, 否则输出提示数据信息不完整的信息;

步骤 c: 所述客户端接收到动态口令后将其与所述请求 信息发送给所述服务器;

步骤 d: 所述服务器接收到动态口令和请求信息后, 根据所述请求信息生成验证动态口令并根据 所述验证动态口令验证所述动态口令是否合法 , 是则所述服务器根据所述请求信息执行操作, 否则所 述服务器向所述客户端发送提示动态口令不合 法的信息;

步骤 e : 所述客户端接收到提示动态口令不合法的信息 后输出相应提示信息。

其中, 所述将所述数据包组转换成音频数据并循环播 放具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则将第一预设数组存储到数据缓冲区, 若为 0则将 第二预设数组存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的 最后一个数据位, 是则编码完成, 按照预设采样频 率及采样大小循环输出所述数据缓冲区中的数 据, 否则将下一数据位作为当前数据位, 返回执行②。

或者, 所述将所述数据包组转换成音频数据并循环播 放具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第一预设算法、 第一预设数据和第一预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第一预设算法、 第二预设数据和第 一预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的 最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的 数据,否则将下一数据位作为当前数据位,返 回执行②。

所述根据第一预设算法、 第一预设数据和第一预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

一 ^ 计算 2 π 和所述第一预设数据的商, 将计算结果赋值给第一变量, 将第三预设数据赋值给第 一 . 计算所述第一变量的值和所述第二变量的值的 乘积并将计算结果赋值给第三变量, 计算所述 第三变量的正弦值并将计算结果赋值给第四变 量, 计算所述第四变量和所述第一预设幅值的乘积 并将 计算结果赋值给第五变量, 所述第五变量的当前值存储到所述数据缓冲区 , 所述第二变量的值递增; i i i. 判断所述第二变量的值是否小于所述第一预设 数据, 是则返回执行 i i, 否则计算完成; 所述根据第一预设算法、 第二预设数据和第一预设幅值进行计算, 并将计算结果顺序存储到所述 数据缓冲区具体包括:

一 ^ 计算 2 π 和所述第二预设数据的商, 将计算结果赋值给第一变量, 将第三预设数据赋值给第 一 . 计算所述第一变量的值和所述第二变量的值的 乘积并将计算结果赋值给第三变量, 计算所述 第三变量的正弦值并将计算结果赋值给第四变 量, 计算所述第四变量和所述第一预设幅值的乘积 并将 计算结果赋值给第五变量,将所述第五变量的 当前值存储到所述数据缓冲区,所述第二变量 的值递增;

i i i. 判断所述第二变量的值是否小于所述第二预设 数据, 是则返回执行 i i, 否则计算完成。 或者, 所述将所述数据包组转换成音频数据并循环播 放具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第二预设算法、 第四预设数据和第二预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第二预设算法、 第四预设数据和第 三预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的 最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的 数据,否则将下一数据位作为当前数据位,返 回执行②。

所述根据第二预设算法、 第四预设数据和第二预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

i. 计算 2 π 和所述第四预设数据的商并将计算结果赋值给 第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值和所述第二变量的值的 乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四 变量, 计算所述第四变量的值和所述第二预设幅值的 乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲 区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第四预设 数据, 是则返回执行 i i i, 否则计算完成; 所述根据第二预设算法、 第四预设数据和第三预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

i. 计算 2 π 和所述第四预设数据的商并将计算结果赋值给 第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值和所述第二变量的值的 乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四 变量, 计算所述第四变量的值和所述第三预设幅值的 乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲 区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于所述第四预设 数据, 是则返回执行 i i i, 否则计算完成。 或者, 所述将所述数据包组转换成音频数据并循环播 放具体包括:

Φ将所述数据包组转换成二进制数组;

②检査所述二进制数组的当前数据位, 若为 1则根据第三预设算法、 第五预设数据和第四预设幅 值进行计算, 并将计算结果顺序存储到数据缓冲区; 若为 0则根据第四预设算法、 第五预设数据和第 四预设幅值进行计算, 并将计算结果顺序存储到所述数据缓冲区;

③判断当前数据位是否为所述二进制数组中的 最后一个数据位, 是则编码完成, 按预设采样频率 及预设采样大小循环输出所述数据缓冲区中的 数据,否则将下一数据位作为当前数据位,返 回执行②。

所述根据第三预设算法、 第五预设数据和第四预设幅值进行计算, 并将计算结果顺序存储到数据 缓冲区具体包括:

i. 计算 2 π 和所述第五预设数据的商并将计算结果赋值给 第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值与所述第二变量的值的 乘积并将计算结果赋值给第三变量, 计算所 述第三变量的余弦值并将计算结果赋值给第四 变量计算所述第四变量的值和所述第四预设幅 值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲 区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于第五预设数据 , 是则返回执行 i i i, 否则迭代过程结束; 所述根据第四预设算法、 第五预设数据和第四预设幅值进行计算, 并将计算结果顺序存储到所述 数据缓冲区具体包括:

i. 计算 2 π 和所述第五预设数据的商并将计算结果赋值给 第一变量;

i i. 将第三预设数据赋值给第二变量;

i i i. 计算所述第一变量的值与所述第二变量的值的 乘积并将计算结果赋值给第三变量, 计算所 述第三变量的正弦值并将计算结果赋值给第四 变量计算所述第四变量的值和所述第四预设幅 值的乘 积并将计算结果赋值给第五变量, 将所述第五变量的当前值存储到所述数据缓冲 区, 所述第二变量的 值递增;

iv. 判断所述第二变量的值是否小于第五预设数据 , 是则返回执行 i i i, 否则计算完成。

所述动态口令装置根据所述数据信息生成动态 口令具体包括:

所述动态口令装置采用内置的算法根据所述数 据信息和预先存储的种子计算生成动态口令, 或者 所述动态口令装置采用内置的算法根据所述数 据信息、 当前动态因子和预先存储的种子进行加密 运算, 生成动态口令, 其中所述动态因子为时间因子或事件因子。

所述服务器根据所述请求信息生成验证动态口 令具体包括:

所述服务器采用内置的算法根据所述请求信息 和预先存储于的种子计算生成验证动态口令, 或者 所述服务器采用内置的算法根据所述请求信息 、 当前动态因子和预先存储的种子进行加密运算 , 生成验证动态口令, 其中, 所述动态因子为时间因子或事件因子。

所述验证动态口令为一个动态口令或一组动态 口令。

所述服务器根据所述验证动态口令验证所述动 态口令是否合法具体包括:

当所述验证动态口令为一个动态口令时, 判断所述动态口令与所述验证动态口令是否相 同, 若相 同则所述动态口令合法, 若不相同则所述动态口令不合法;

当所述验证动态口令为一组动态口令时,判断 所述验证动态口令中是否有与所述动态口令相 同的 动态口令, 若有则所述动态口令合法, 若没有则所述动态口令不合法。 本发明的有益效果在于: 解决了相关现有技术的动态口令的认证方法需 要人工输入认证数据, 导致认证结果易出错、 时间及人力成本较高的问题, 进而实现降低成本, 提高认证安全性的效果。 附图说明

为了更清楚的说明本发明实施例或现有技术中 的技术方案, 下面将对实施例或现有技术描述中所 需要使用的附图作简单的介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例 , 对于本 领域的技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。

图 1为本发明实施例一的一种基于声音传输的认 方法流程图;

图 2为本发明实施例二的一种基于声音传输的认 方法流程图;

图 3为本发明实施例三的一种基于声音传输的认 方法流程图;

图 4为本发明实施例四的一种将数据包组转换成 频数据的方法流程图;

图 5为本发明实施例五的一种将数据包组转换成 频数据的方法流程图;

图 6为本发明实施例六的一种将数据包组转换成 频数据的方法流程图。

具体实施方式

下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描 述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。 基于本发明 中的实施例, 本领域的技术人员在没有做出创造性劳动前提 下所获得的所有其他实施例, 都 属于本发明保护的范围。

实施例一

参见图 1, 本实施例提供了一种基于声音传输的认证方法 , 由服务器、 客户端和动态口令装置一 起来实现, 包括:

步骤 101 : 客户端接收到用户输入的请求信息后发送请求 信息报文给服务器;

具体地, 在本实施例中, 所述请求信息包含用户识别码、 账号信息、 金额, 由用户输入, 其中所 述用户识别码用来识别用户身份, 可由用户自行修改;

进一步地, 所述请求信息中还可以包括时间、 地点、 密码、 附加信息等信息, 所述附加信息可以 为用户自行输入的一组任意长度串组成的信息 ;

例如, 在本实施例中, 所述请求信息报文为:

<?xml vers ion= l. 0" encoding="UTF- 8"?>〈TXD>〈MXk>用户识别码:

〈/k>〈v>123456〈/vX/MXM>〈k>账号信息 : 〈/k>〈v>11112222〈/vX/MX/D>〈E> 〈M>〈k>金额: 〈/k>〈v>45600〈/v>〈/MX/E>〈/T>。

步骤 102: 所述服务器接收到请求信息报文后, 提取并存储请求信息, 根据所述请求信息生成数 据包组, 将所述数据包组发送给所述客户端;

优选地, 在本实施例中, 所述根据所述请求信息生成数据包组具体为: 在所述请求信息的基础上 添加预设数据, 将所述请求信息中的每一项信息以及所述预设 数据进行分组转换生成若干数据包, 将 所述若干数据包组成数据包组。

步骤 103: 所述客户端接收到所述服务器发送的数据包组 后, 将所述数据包组转换为音频数据, 并循环播放所述音频数据, 等待接收用户输入的动态口令;

优选地, 在本实施例中, 所述将所述数据包组转换为音频数据输出具体 包括: 将所述数据包组转 换为二进制数据, 对每个数据位进行编码得到音频数据, 客户端调用操作系统函数通过音频播放装置 将音频数据按预设采样频率、 预设采样大小及预置声道输出;

例如, 在 Windows操作系统中, 通过构造 WAVEFORMATEX结构, 传入采样频率: 44100, 采样大小: 16,声道:单声道,调用 waveOueOpen函数,传入 WAVEFORMATEX结 ,得到 HWAVEOUT句柄,构造 WAVEHER 结构, 传入音频 , 调用 waveOutPr印 areHeader 函数, 传入 WAVEHDR 结构准备播放, 调用 waveOutWrite函数, 传入 WAVEHDR结构播放;

在 android操作系统中, 通过构造 AudioTrack对象, 传入采样频率: 44100, 采样大小: 16, 声 道: 单声道, 调用 AudioTrack类的 write方法, 将音频数据写入, 调用 AudioTrack类的 play方法 播放;

¾ I0S操作系统中, 通过创建 AQPlayer对象, 调用 AQPlayer对象的 SendCmd函数, 传入音频数 据, SendCmd函数调用 AudioQueueNewOutput , 传入采样频率: 44100, 采样大小: 16, 声道: 单声道, 创建播放队列, SendCmd函数调用 AudioQueueStart播放;

在 windows phone7操作系统中, 通过创建 SoundEf f ect对象, 传入音频数据、 采样频率: 44100, 采样大小: 16, 声道: 单声道, 调用 SoundEf feet 对象的 Createlnstance 函数, 创建 SoundEffectlnstance对象, 调用 SoundEf fectlnstance的 Play函数播放;

具体地, 将所述数据包组转换为音频数据的方法将在实 施例四、 实施例五和实施例六中进一步阐 述。

步骤 104: 动态口令装置采集音频数据, 并对采集到的音频数据进行解码得到数据信息 ; 步骤 105 : 所述动态口令装置判断所述数据信息是否完整 , 是则执行步骤 106, 否则所述动态口 令装置输出提示错误的信息, 进程终止; 步骤 106: 所述动态口令装置提取所述数据信息的部分或 全部, 将其转换为供用户査看的显示信 息并输出, 等待接收用户输入的确认信息;

优选地, 在本实施例中, 所述动态口令装置提取到的信息包括: 用户识别码、 账号信息、 金额及 附加信息, 将上述提取到的信息转换为十进制数值作为显 示信息。

步骤 107 : 所述动态口令装置判断在预定时间内是否接收 到确认信息, 是则执行步骤 108, 否则 所述动态口令装置提示超时的信息, 进程终止;

优选地, 在本实施例中, 所述预设时间为 60秒。

步骤 108: 所述动态口令装置根据所述数据信息生成动态 口令并输出;

具体的, 所述动态口令装置生成动态口令的方法可以为 : 采用内置的算法根据所述数据信息和预 先存储的种子计算生成动态口令, 或者

采用内置的算法根据所述数据信息、 当前时间因子 (或事件因子)和预先存储的种子进行加密运 算, 生成动态口令。

步骤 109 : 所述客户端接收到用户输入的动态口令后将其 发送给所述服务器;

步骤 110: 所述服务器接收到所述客户端发送的动态口令 后, 根据存储的请求信息生成验证动态 口令;

其中, 所述验证动态口令为一个动态口令或一组动态 口令。

具体地, 所述服务器生成验证动态口令的方法可以为: 采用内置的算法根据所述请求信息和预先 存储的种子计算生成验证动态口令, 或者

采用内置的算法根据所述请求信息、 当前时间因子 (或事件因子)和预先存储的种子进行加密运 算, 生成验证动态口令;

其中, 在本实施例中, 所述服务器中内置的算法和预先存储的种子与 所述动态口令装置中内置的 算法和预先的种子相同。

步骤 111 :所述服务器根据所述验证动态口令验证接收 的动态口令是否合法,是则执行步骤 112, 否则执行步骤 113 ;

其中, 当所述验证动态口令为一个动态口令时: 若所述接收到的动态口令与所述验证动态口令 相 同, 则所述接收到的动态口令合法, 若所述接收到的动态口令与所述验证动态口令 不相同, 则所述接 收到的动态口令不合法;

当所述验证口令为一组动态口令时: 若所述验证动态口令中有与所述接收到的动态 口令相同的动 态口令, 则所述接收到的动态口令合法, 若所述验证口令中没有与所述接收到的动态口 令相同的动态 口令, 则所述接收到的动态口令不合法。

步骤 112: 所述服务器根据所述请求信息中的操作请求执 行相应操作, 进程结束;

步骤 113: 所述服务器向所述客户端发送提示动态口令不 合法的信息;

步骤 114: 所述客户端接收到所述服务器发送的提示动态 口令不合法的信息后输出与之相应的提 示动态口令错误的信息, 进程终止。

实施例二

参见图 2, 本实施例提供了一种基于声音传输的认证方法 , 由服务器、 客户端和动态口令一起来 实现, 包括:

步骤 201 : 客户端接收到用户输入的请求信息后存储所述 请求信息, 并根据所述请求信息生成数 据包组;

具体地, 在本实施例中, 所述请求信息包含用户识别码、 帐号信息、 金额, 由用户输入, 其中所 述用户识别码用来识别用户身份, 可由用户自行修改;

进一步地, 所述请求信息中还可以包括时间、 地点、 密码、 附加信息等信息, 所述附加信息可以 为用户自行输入的一组任意长度字符串组成的 信息;

优选地, 在本实施例中, 所述根据所述请求信息生成数据包组具体为: 在所述请求信息的基础上 添加预设数据, 将所述请求信息中的每一项信息以及所述预设 数据进行分组转换生成若干数据包, 将 所述若干数据包组成数据包组。

步骤 202 : 所述客户端将所述数据包组转换为音频数据并 循环播放, 等待接收用户输入的动态口 令;

优选地, 在本实施例中, 所述将所述数据包组转换为音频数据输出具体 包括: 将所述数据包组转 换为二进制数据, 对每个数据位进行编码得到音频数据, 通过扬声器输出, 客户端调用操作系统函数 通过音频播放装置将音频数据按预设采样频率 、 预设采样大小及预置声道输出;

具体地, 将所述数据包组转换为音频数据的方法将在实 施例四、 实施例五和实施例六中进一步阐 述。

步骤 203 : 动态口令装置采集音频数据, 并对采集到的音频数据进行解码得到数据信息 ; 步骤 204: 所述动态口令装置判断所述数据信息是否完整 , 是则执行步骤 205, 否则所述动态口 令装置输出提示错误的信息, 进程终止;

步骤 205: 所述动态口令装置提取所述数据信息的部分或 全部, 将其转换为供用户査看的显示信 息并输出, 等待接收用户输入的确认信息;

优选地, 在本实施例中, 所述动态口令装置提取到的信息包括: 用户识别码、 账号信息、 金额及 附加信息, 将上述提取到的信息转换为十进制数值作为显 示信息。

步骤 206: 所述动态口令装置判断在预定时间内是否接收 到确认信息, 是则执行步骤 207, 否则 所述动态口令装置输出提示超时的信息, 进程终止;

优选地, 在本实施例中, 所述预设时间为 60秒。

步骤 207 : 所述动态口令装置根据所述数据信息生成动态 口令并输出;

具体的, 所述动态口令装置生成动态口令的方法可以为 : 采用内置的算法根据所述数据信息和预 先存储的种子计算生成动态口令, 或者

采用内置的算法根据所述数据信息、 当前时间因子 (或事件因子)和预先存储的种子进行加密运 算, 生成动态口令。

步骤 208: 所述客户端接收到用户输入的动态口令后, 将所述动态口令和请求信息发送给所述服 务器;

步骤 209: 所述服务器接收到所述客户端发送的动态口令 和请求信息后, 根据所述请求信息生成 验证动态口令;

其中, 所述验证动态口令可以为一个或一组动态口令 。

具体的, 所述服务器生成验证动态口令的方法可以为: 采用内置的算法根据所述请求信息和预先 存储的种子计算生成动态口令, 或者

采用内置的算法根据所述请求信息、 当前时间因子 (或事件因子)和预先存储的种子进行加密运 算, 生成动态口令;

其中, 在本实施例中, 所述服务器中内置的算法和预先存储的种子与 所述动态口令装置中内置的 算法和预先存储的种子相同。

步骤 210:所述服务器根据所述验证动态口令验证接 到的动态口令是否合法,是则执行步骤 211, 否则执行步骤 212 ;

其中, 当所述验证动态口令为一个动态口令时: 若所述接收到的动态口令与所述验证动态口令 相 同, 则所述接收到的动态口令合法, 若所述接收到的动态口令与所述验证动态口令 不相同, 则所述接 收到的动态口令不合法;

当所述验证口令为一组动态口令时:若所述验 证动态口令中有与所述接收到的动态口令相同 的动 态口令, 则所述接收到的动态口令合法, 若所述验证口令中没有与所述接收到的动态口 令相同的动态 口令, 则所述接收到的动态口令不合法。

步骤 211 : 所述服务器根据所述请求信息中的操作请求执 行相应操作, 进程结束;

步骤 212 : 所述服务器向所述客户端发送提示动态口令不 合法的信息;

步骤 213: 所述客户端接收到所述服务器发送的提示动态 口令不合法的信息后输出与之相应的提 示动态口令不合法的信息, 进程终止。

实施例三

参见图 3, 本实施例提供了一种基于声音传输的认证方法 , 由服务器、 客户端和动态口令装置一 起来实现, 包括:

步骤 301 : 客户端接收到用户输入的请求信息后发送请求 信息报文给服务器;

具体地, 在本实施例中, 所述请求信息包含用户识别码、 账号信息、 金额, 由用户输入, 其中所 述用户识别码用来识别用户身份, 可由用户自行修改;

进一步地, 所述请求信息中还可以包括时间、 地点、 密码、 附加信息等信息, 所述附加信息可以 为用户自行输入的一组任意长度字符串组成的 信息。

步骤 302: 所述服务器接收到请求信息报文后, 提取并存储请求信息, 根据所述请求信息生成数 据包组, 将所述数据包组转换为音频数据并发送给所述 客户端;

优选地, 在本实施例中, 所述根据所述请求信息生成数据包组具体为: 在所述请求信息的基础上 添加预设数据, 将所述请求信息中的每一项信息以及所述预设 数据进行分组转换生成若干数据包, 将 所述若干数据包组成数据包组;

优选地, 在本实施例中, 所述将所述数据包组转换为音频数据并发送给 所述客户端具体包括: 将 所述数据包组转换为二进制数据, 对每个数据位进行编码得到音频数据, 将所述音频数据发送给所述 客户端, 具体地, 将所述数据包组转换为音频数据的方法将在实 施例四、 实施例五和实施例六中进一 步阐述。

步骤 303:所述客户端接收到音频数据后循环播放所 音频数据,等待接收用户输入的动态口令; 具体地, 客户端调用操作系统函数通过音频播放装置将 音频数据按预设采样频率、 预设采样大小 及预置声道输出。

步骤 304: 动态口令装置采集客户端播放的音频数据, 并对采集到的音频数据进行解码得到数据 信息 ·

R '、、^骤 305 : 所述动态口令装置判断所述数据信息是否完整 , 是则执行步骤 306, 否则所述动态口 令装置输出提示错误的信息, 进程终止;

步骤 306: 所述动态口令装置提取所述数据信息的部分或 全部, 将其转换为供用户査看的显示信 息并输出, 等待接收用户输入的确认信息;

优选地, 在本实施例中, 所述动态口令装置提取到的信息包括: 用户识别码、 账号信息、 金额及 附加信息, 将上述提取到的信息转换成十进制数值作为显 示信息。

步骤 307 : 所述动态口令装置判断在预定时间内是否接收 到确认信息, 是则执行步骤 308, 否则 所述动态口令装置输出提示超时的信息, 进程终止;

优选地, 在本实施例中, 所述预设时间为 60秒。

步骤 308: 所述动态口令装置根据所述数据信息生成动态 口令并输出;

具体的, 所述动态口令装置生成动态口令的方法可以为 : 采用内置的算法根据所述数据信息和预 先存储的种子计算生成动态口令, 或者

采用内置的算法根据所述数据信息、 当前时间因子 (或事件因子)和预先存储的种子进行加密运 算, 生成动态口令。

步骤 309 : 所述客户端接收到用户输入的动态口令后将其 发送给所述服务器;

步骤 310: 所述服务器接收到所述客户端发送的动态口令 后, 根据存储的请求信息生成验证动态 口令;

其中, 所述验证动态口令为一个动态口令或一组动态 口令。

具体地, 所述服务器生成验证动态口令的方法可以为: 采用内置的算法根据所述请求信息和预先 存储的种子计算生成动态口令, 或者

采用内置的算法根据所述请求信息、 当前时间因子 (或事件因子)和预先存储的种子进行加密运 算, 生成动态口令;

其中, 在本实施例中, 所述服务器中内置的算法和预先存储的种子与 所述动态口令装置中内置的 算法和预先存储的种子相同。

步骤 311:所述服务器根据所述验证动态口令验证接 收到的动态口令是否合法,是则执行步骤 312, 否则执行步骤 313 ;

其中, 当所述验证动态口令为一个动态口令时: 若所述接收到的动态口令与所述验证动态口令 相 同, 则所述接收到的动态口令合法, 若所述接收到的动态口令与所述验证动态口令 不相同, 则所述接 收到的动态口令不合法;

当所述验证口令为一组动态口令时: 若所述验证动态口令中有与所述接收到的动态 口令相同的动 态口令, 则所述接收到的动态口令合法, 若所述验证口令中没有与所述接收到的动态口 令相同的动态 口令, 则所述接收到的动态口令不合法。

步骤 312 : 所述服务器根据所述请求信息中的操作请求执 行相应操作, 进程结束;

步骤 313 : 所述服务器向所述客户端发送提示动态口令不 合法的信息;

步骤 314: 所述客户端接收到所述服务器发送的提示动态 口令不合法的信息后输出与之相应的提 示动态口令不合法的信息, 进程终止。

实施例四

参见图 4, 本实施例中提供了一种将所述数据包组转换为 音频数据的方法, 所述方法包括将数据 包组转换成二进制数据; 检査二进制数组的当前数据位, 若为 1则根据第一预设算法、 第一预设数据 和第一预设幅值进行计算, 并将计算结果顺序存储到数据缓冲区, 若为 0则根据第一预设算法、 第二 预设数据和第一预设幅值进行计算, 并将计算结果顺序存储到数据缓冲区; 判断当前数据为是否为二 进制数组中的最后一个数据位, 是则编码完成, 循环输出数据缓冲区中的数据, 否则将下一数据位作 为当前数据位返回执行上述检査过程, 具体可包括如下步骤:

步骤 401 : 将数据包组转换成二进制数组;

具体地, 在本实施例中, 以数据包组为一个字节数据 0x31 作为示例进行说明, 因此将数据包组 进行转换得到的二进制数组为 00110001。

步骤 402 : 判断二进制数组的当前数据位, 若为 1则执行步骤 403-1 ; 若为 0则执行步骤 403-2 ; 具体地, 在本实施例中依序判断二进制数组中的数据位 。

步骤 403-1 : 计算 2 和第一预设数据的商, 将计算结果赋值给第一变量;

步骤 404-1 : 将第三预设数据赋值给第二变量;

具体的, 在本实施例中, 所述第三预设数据为 0.

步骤 405-1 : 计算第一变量的值和第二变量的值的乘积, 将计算结果赋值给第三变量; 步骤 406-1 : 计算第三变量的正弦值, 将计算结果赋值给第四变量;

步骤 407-1 : 计算第四变量的值与第一预设幅值的乘积, 将计算结果赋值给第五变量; 优选地, 所述第一预设幅值可以为 255或 32767。

步骤 408-1 : 按照预设存储顺序将第五变量的当前值存储到 数据缓冲区;

具体地, 在本实施例中所述预设存储顺序为顺序存储, 所述二进制数组中各数据位对应的第五变 量的值的按预设顺序的集合即为语音数据。

步骤 409-1 : 第二变量的值递增, 判断第二变量的值是否小于第一预设数据, 是则返回执行步骤 405-1, 否则执行步骤 410;

在本实施例的示例中, 设定第一预设数据为 12、 第一预设幅值为 32767, 计算得出第一变量的值 为 π /6,上述循环(步骤 405-1至步骤 409-1 )结束以后存储到数据缓冲区中的数据依次为 {0, 16383 , 28377, 32767, 28377, 16383, 0, -16383, -28377 , -32767 , -28377 , -16383}。

步骤 403-2 : 计算 2 和第二预设数据的商, 将计算结果赋值给第一变量; 步骤 404-2: 将第三预设数据赋值给第二变量;

具体的, 在本实施例中, 所述第三预设数据为 0.

步骤 405-2: 计算第一变量的值和第二变量的值的乘积, 将计算结果赋值给第三变量; 步骤 406-2: 计算第三变量的正弦值, 将计算结果赋值给第四变量;

步骤 407-2: 计算第四变量的值与第一预设幅值的乘积, 将计算结果赋值给第五变量; 优选地, 所述第一预设幅值可以为 255或 32767。

步骤 408-2: 按照预设存储顺序将第五变量的当前值存储到 数据缓冲区;

具体地, 在本实施例中所述预设存储顺序为顺序存储, 所述二进制数组中各数据位对应的第五变 量的值的按预设顺序的集合即为语音数据。

步骤 409-2: 第二变量的值递增, 判断第二变量的值是否小于第二预设数据, 是则返回执行步骤 405-2, 否则执行步骤 410;

在本实施例的示例中, 设定第二预设数据为 6、 第一预设幅值为 32767, 计算得出第一变量的值 为 π /3,上述循环(步骤 405-2至步骤 409_2)结束以后存储到数据缓冲区中的数据依次 为 {0, 28377,

28377, 0, -28377, -28377}。

步骤 410:判断当前数据位是否为二进制数组中的最 一个数据位,是则编码完成,执行步骤 411, 否则将下一数据位作为当前数据位返回执行步 骤 402 ;

步骤 411: 循环输出缓冲区中的数据。

在本实施例中的示例 (数据包组为一个字节数据 0x31), 最终数据缓冲区中的数据如下:

{0, 28377, 28377, 0, -28377, -28377;

0, 28377, 28377, 0, -28377, -28377;

0, 16383, 28377, 32767, 28377, 16383, 0, -16383, -28377, -32767, -28377, - 16383;

0, 16383, 28377, 32767, 28377, 16383, 0, -16383, -28377, -32767, -28377, - 16383;

0, 28377, 28377, 0, -28377, -28377;

0, 28377, 28377, 0, -28377, -28377;

0, 28377, 28377, 0, -28377, -28377;

0, 16383, 28377, 32767, 28377, 16383, 0, -16383, —28377, -32767, —28377, 16383} 实施例五

参见图 5, 本实施例中提供了一种将所述数据包组转换为 音频数据的方法, 所述方法包括将数据 包组转换成二进制数据; 检査二进制数组的当前数据位, 若为 1则根据第二预设算法、 第四预设数据 和第二预设幅值进行计算, 并将计算结果顺序存储到数据缓冲区, 若为 0则根据第二预设算法、 第四 预设数据和第三预设幅值进行计算, 并将计算结果顺序存储到数据缓冲区; 判断当前数据为是否为二 进制数组中的最后一个数据位, 是则编码完成, 循环输出数据缓冲区中的数据, 否则将下一数据位作 为当前数据位返回执行上述检査过程, 具体可包括如下步骤:

步骤 501: 将数据包组转换成二进制数组;

具体地, 在本实施例中, 以数据包组为一个字节数据 0x31 作为示例进行说明, 因此将数据包组 进行转换得到的二进制数组为 00110001。

步骤 502: 计算 2 和第四预设数据的商, 将计算结果赋值给第一变量;

具体地, 所述第四预设数据通常设定为 6至 20之间的任意值, 在本实施例的实例中设定第四预 设数据为 6, 计算得到第一变量为 π/3。

步骤 503: 将第三预设数据赋值给第二变量;

具体的, 在本实施例中, 所述第三预设数据为 0.

步骤 504: 计算第一变量的值与第二变量的值的乘积, 将计算结果赋值给第三变量;

步骤 505: 计算第三变量的正弦值, 将计算结果赋值给第四变量;

步骤 506: 判断二进制数组的当前数据位, 若为 1则执行步骤 507-1, 若为 0则执行步骤 507-2; 具体地, 在本实施例中依序判断二进制数组中的数据位 。

步骤 507-1: 计算第四变量的值与第二预设幅值的乘积, 执行步骤 508;

具体地, 在本实施例的示例中, 所述第一预设幅值为 32767。

步骤 507-2: 计算第四变量的值与第三预设幅值的乘积, 执行步骤 508;

具体地, 在本实施例的示例中, 所述第二预设幅值为 255。

步骤 508: 按照预设存储顺序将第五变量的值存储到数据 缓冲区;

具体地, 在本实施例中所述预设存储顺序为顺序存储。

步骤 509:第二变量的值递增,判断第二变量的值是 小于第四预设数据,是则返回执行步骤 504, 否则执行步骤 510;

在本实施例的示例中, 当前数据位为 0时, 上述循环 (步骤 504至步骤 509) 结束以后存储到数 据缓冲区中的数据依次为 {0, 220, 220,0, -220, -220 }; 当前数据位为 1 时, 上述循环 (步骤 504 至步骤 509) 结束以后存储到数据缓冲区中的数据依次为 {0, 28377,28377,0, -28377, -28377 }。

步骤 510:判断当前数据位是否为二进制数组中的最 一个数据位,是则编码完成,执行步骤 511, 否则将下一数据位作为当前数据位, 返回执行步骤 503;

步骤 511: 循环输出数据缓冲区中的数据。 在本实施例中的示例 (数据包组为一个字节数据 0x31 ), 最终数据缓冲区中的数据如下: {0, 220, 220, 0, -220, -220;

0, 220, 220, 0, -220, -220;

0, 28377, 28377 , 0, -28377 , -28377;

0, 28377, 28377 , 0, -28377 , -28377;

0, 220, 220, 0, -220, -220;

0, 220, 220, 0, -220, -220;

0, 220, 220, 0, -220, -220;

0, 28377, 28377, 0, -28377 , -28377}。

实施例六

参见图 6, 本实施例中提供了一种将所述数据包组转换为 音频数据的方法, 所述方法包括将数据 包组转换成二进制数据; 检査二进制数组的当前数据位, 若为 1则根据第三预设算法、 第五预设数据 和第四预设幅值进行计算, 并将计算结果顺序存储到数据缓冲区, 若为 0则根据第四预设算法、 第五 预设数据和第四预设幅值进行计算, 并将计算结果顺序存储到数据缓冲区; 判断当前数据为是否为二 进制数组中的最后一个数据位, 是则编码完成, 循环输出数据缓冲区中的数据, 否则将下一数据位作 为当前数据位返回执行上述检査过程, 具体可包括如下步骤:

步骤 601 : 将数据包组转换成二进制数组;

具体地, 在本实施例中, 以数据包组为一个字节数据 0x31 作为示例进行说明, 因此将数据包组 进行转换得到的二进制数组为 00110001。

步骤 602 : 计算 2 和第五预设数据的商, 将计算结果赋值给第一变量;

具体地, 所述第五数据通常设定为 6至 20之间的任意值, 在本实施例的示例中, 所述第四预设 数据为 6, 计算得到第一变量的值为 π /3。

步骤 603 : 将第三预设数据赋值给第二变量;

具体的, 在本实施例中, 所述第三预设数据为 0.

步骤 604: 计算第一变量的值和第二变量的值的乘积, 将计算结果赋值给第三变量;

步骤 605: 判断二进制数组的当前数据位, 若为 1则执行步骤 606-1, 若为 0则执行步骤 606-2 ; 具体地, 在本实施例中依序判断二进制数组中的数据位 。

步骤 606-1 : 计算第三变量的余弦值, 将计算结果赋值给第四变量, 执行步骤 607 ;

步骤 606-2 : 计算第三变量的正弦值, 将计算结果赋值给第四变量, 执行步骤 607 ;

步骤 607 : 计算第四变量的值和第四预设幅值的乘积, 将计算结果赋值给第五变量;

具体地, 在本实施例中, 所述第一预设幅值可以为 255或 32767, 在本实施例的示例中, 设定第 一预设幅值为 32767。

步骤 608: 按照预设存储顺序将第五变量的值存储到数据 缓冲区;

具体地, 在本实施例中所述预设存储顺序为顺序存储。

步骤 609 :第二变量的值递增,判断第二变量的值是否 于第五预设数据,是则返回执行步骤 604, 否则执行步骤 610;

在本实施例的示例中, 当前数据位为 0时, 上述循环 (步骤 604至步骤 609 ) 结束以后存储到数 据缓冲区中的数据依次为 {0, 28377 , 28377 , 0, -28377 , -28377 }; 当前数据位为 1 时, 上述循环 (步骤 604至步骤 609 )结束以后存储到数据缓冲区中的数据依次为 {32767, 16383 , -16383, -32767, -16383, 16383 }。

步骤 610:判断当前数据位是否为二进制数组中的最 一个数据位,是则编码完成,执行步骤 611, 否则将下一数据位作为当前数据位, 返回执行步骤 603 ;

步骤 611 : 循环输出数据缓冲区中的数据。

在本实施例中的示例 (数据包组为一个字节数据 0x31 ), 最终数据缓冲区中的数据如下: {0, 28377, 28377 , 0, -28377, -28377 ;

0, 28377, 28377 , 0, -28377 , -28377;

32767, 16383, -16383, -32767 , -16383, 16383;

32767, 16383, -16383, -32767 , -16383, 16383;

0, 28377, 28377 , 0, -28377 , -28377;

0, 28377, 28377 , 0, -28377 , -28377;

0, 28377, 28377 , 0, -28377 , -28377;

32767, 16383, -16383, -32767 , -16383, 16383 }。

实施例七

实施例四、 五、 六提供的方法均为即时计算数据位 0和 1对应的编码数据, 本实施例中提供了一 种预先计算出数据位 0和 1对应的编码数据的将所述数据包组转换为音 数据的方法, 所述方法可包 括如下步骤:

步骤 701 : 将所述数据包转换成二进制数组;

步骤 702 : 检査二进制数组的当前数据位, 若为 1则将第一预设数组存储到数据缓冲区, 若为 0 则将第二预设数组存储到数据缓冲区;

步骤 703: 判断当前数据位是否为所述二进制数组中的最 后一个数据位, 是则编码完成, 按照预 设采样频率及采样大小循环输出所述数据缓冲 区中的数据, 否则将下一数据位作为当前数据位, 返回 执行步骤 702。

具体地, 在本实施例中, 步骤 702之前还包括按照预设算法计算第一预设数组 和第二预设数组, 具体可以为:

按照第一预设算法, 根据第一预设数据、 第一预设幅值计算第一预设数组, 按照第一预设算法, 根据第二预设数据、 第一预设幅值计算第二预设数组; 或者,

按照第二预设算法, 根据第四预设数据、 第二预设幅值计算第一预设数组, 按照第二预设算法, 根据第四预设数据、 第三预设幅值计算第二预设数组; 或者,

按照第三预设算法, 根据第五预设数据、 第四预设幅值计算第一预设数组, 按照第四预设算法, 根据第五预设数据、 第四预设幅值计算第二预设数组;

其中, 所述预设算法、 预设数据以及预设幅值与实施例四、 五、 六中的相同, 在此不再赘述。 以上所述的实施例只是本发明较优选的具体实 施方式, 本领域的技术人员在本发明技术方案范围 内进行的通常变化和替换都应包含在本发明的 保护范围内。