我需要在我的Firefox插件中使用crypto.getRandomValue(MDN)。但是,我没有找到在我的内容脚本中访问加密的方法。有办法吗?
更新
我错了,我已经尝试过不在内容脚本中,而是直接在main.js.我是否需要仅为此功能使用内容脚本,或者可以不使用内容脚本?
答案 0 :(得分:1)
对我来说很好......也许你的代码中getRandomValues
拼错了getRandomValue
。
var {PageMod} = require("sdk/page-mod");
// Content scripts should be able to use crypto just fine.
PageMod({
include: "*",
contentScript: 'console.log(crypto.getRandomValues(new Uint8Array(10)));'
});
按预期记录一些随机数据。
main.js
// SDK modules do not have a window, but we can always borrow the
// hidden window.
var {Cu} = require("chrome");
Cu.import("resource://gre/modules/Services.jsm");
var window = Services.appShell.hiddenDOMWindow;
console.log(window.crypto.getRandomValues(new Uint8Array(10)));
按预期记录一些随机数据。
答案 1 :(得分:0)
您使用的是哪个版本的Firefox?在内容脚本中在Firefox 31中运行此代码似乎对我很好:
var arr = new Uint16Array(6);
console.log(window.crypto.getRandomValues(arr));