我指的是基于软件的 OCR?图像到文本引擎的转换工具,stackoverflow 有大量关于构建 OCR 的帖子,但我看起来相反,就像任何关于如何保护我的图像免受逆向工程的指导一样。
例如,我有只包含文本的图像,我怎样才能让任何人都难以解码数据,是否有任何所需的图像格式可以做到这一点?或者我们可以混淆图像?
使用特殊字体或变形可以保证 OCR 保护吗?尽管我的要求不允许提供太多扭曲的文本。
任何方向都会非常有帮助
据我了解,您收集了一些受版权保护的文本,这些文本应该可以被人类清楚地阅读,但您不希望它以电子形式从您的服务器泄漏。我不认为混淆文本以使其更难于 OCR 是一个好主意,因为它会使人类无法阅读,尤其是在文本很长的情况下。基本上,对人类来说易于阅读的内容可以完美地进行 OCR 编辑。OCR 困难的东西对人们来说也很困难。在最坏的情况下,攻击者可能会聘请一家印度公司手动重新输入文本,这实际上并没有那么昂贵。
我建议您寻找其他方面来做好保护。您的用例如何?为什么用户可以在他们的 PC 上获取您的文本作为图像?他们是否将其下载为 PDF 或图像文件?在这种情况下,与下载文件的可能性作斗争会更简单,而不是使其不可读。
例如,您可能会考虑不立即授予对整个文件的访问权限,而是逐页显示它,并需要人工交互才能进入下一页。您甚至可以扰乱您的 Web 界面,使其无法通过典型的站点下载实用程序下载所有内容。每个页面都应该显示在同一个 URL 上,但实际导航应该使用 AJAX 甚至某些专有接口与服务器通信。
另一种方法是在每个页面上制作人类不可见的大量虚假链接,但它们会误导下载实用程序,使他们下载大量错误内容,或者以错误的顺序下载使其无法使用。
如果你能成功地与自动下载作斗争,你甚至不必以图像的形式提供你的内容,它可以是纯文本,但只是其中的一小部分。无论如何,它将无法使用。
希望这能让你知道走哪条路。
我不认为你能做到这一点。对于 CAPTCHA,是的,并且有大量研究,但您也会从个人经验中知道它们阅读起来有多烦人。对于较长的文本,这是不可能的。不过,我会认真质疑这里的用例或商业模式。您有一些内容由于某种原因需要 OCR 保护。这意味着有人愿意花费资源对您的内容进行 OCR。你为什么要和那些人打架?让他们成为客户,并以纯文本形式提供内容,但需收取一定费用。如果该费用低于他们的 OCR 成本,那么您将获得双赢。你试图实现的东西听起来像是双输。
As I and others have said, making a large amount of text obscure enough that OCR can't read it will make it impractical for humans.
Is there a specific threat you're trying to beat? Simple web crawlers often don't execute javascript, so a dumb way to make your text harder to scrape would be to load it with an AJAX request and insert it into the DOM.
Or if you want to get more intense, you could have the text displayed in a Flash or Silverlight control -- still not OCR-proof, but that would make it non-trivial to automatically grab large amounts of text, particularly if you have a Flash scrollbar and/or pagination. (I should point out that Flash controls for something simple like text sounds annoying to use, won't be searchable or bookmarkable, and obviously won't work on the majority of mobile devices.)
我已经看到一些页面通过在文本中使用不可见的字母和其他“噪音”来混淆文本。这样,您仍然可以将其显示为文本,同时使其更难复制。
另一个想法可能是以某种方式给文本加水印,以识别“被盗”副本的来源。这是否有用取决于您想要保护的内容。正如已经提到的,如果它是可读的,那么有人可以手动复制它。