代码之家  ›  专栏  ›  技术社区  ›  Faisal Shaikh

如何在android中存储和提取wind(.wnd)文件中的数据

  •  3
  • Faisal Shaikh  · 技术社区  · 7 年前

    我希望没有人可以复制我的应用程序的声音文件,因为它是受版权保护的。为此,我考虑将声音文件(.ogg)存储在wind文件中,并在运行时提取声音文件。

    我们怎么能这样做?

    谢谢你

    1 回复  |  直到 7 年前
        1
  •  1
  •   Large    7 年前

    我不能百分之百地确定wind文件是用于音频存储的安全文件类型,因此我基于一个理论:在我早期使用fft(快速傅立叶变换)生成音频数据的频谱,这些函数被称为“wind”类型。

    下面是一个例子: https://github.com/bewantbe/audio-analyzer-for-android/blob/master/audioSpectrumAnalyzer/src/main/java/github/bewantbe/audio_analyzer_for_android/STFT.java

         (...line 74 ...)
         private void initWindowFunction(int fftlen, String wndName) {
             wnd = new double[fftlen];
             switch (wndName) {
                 case "Bartlett":
                     for (int i=0; i<wnd.length; i++) {  // Bartlett
                         wnd[i] = asin(sin(PI*i/wnd.length))/PI*2;
                     }
                     break;
                 case "Hanning":
    

    如果存储这些数据,它可能是某种“wind文件”。早期版本的tm soft“white noise”将文件保存为wnd: https://www.tmsoft.com/white-noise/

    现在你的问题是如何安全地存储文件。
    谷歌声明你应该使用文件系统加密: https://developer.android.com/training/articles/security-tips

    要为敏感数据提供附加保护,可以加密 使用无法直接访问的密钥的本地文件 申请。例如,您可以将密钥放在密钥库中,然后 使用未存储在设备上的用户密码保护它。 但这并不能保护数据免受 监控用户输入密码,为 没有文件系统加密的丢失设备。

    我建议您使用以下方法在应用程序中加密然后解密: https://code.tutsplus.com/tutorials/storing-data-securely-on-android--cms-30558

    通过加密你的文件,你的文件将是安全的,即使设备是根。