1:安装 Moodle 并配置您的网站。
从 Moodle 官网下载最新的安装包,解压后上传到您的服务器。按照提示修改配置并完成安装,包括建立 Moodle 数据库。因此,您必须拥有自己的服务器和数据库。以下演示使用了本地 PC 上搭建的 Apache 和 MySQL 服务器。网上有很多关于 Moodle 安装的教程,所以我们这里不再赘述。
安装完成后,注册管理员账号。然后登录创建课程。


创建课程示例后,为您的学生添加用户帐户。


为学生添加用户账号后,请授予学生学习“课程示例”的权限。在“参与者”页面,点击“注册用户”即可允许学生学习该课程。


在这里,我们完成了一个简单的课程创建并添加了一个学生用户。接下来,我们将向空白课程中添加加密内容。我们可以使用 DRM-X 4.0 加密平台对一些视频、音频或 PDF 文件进行加密,并将 DRM-X 4.0 与 Moodle 集成,然后将加密文件嵌入到 Moodle 中。这将使您的学生能够轻松安全地学习课程。
2:注册一个 DRM-X 4.0 帐户并加密您的课程。
从 Xvast 官方网站下载 Windows 版 Xvast 浏览器: https://www.xvast.cn安装完成后打开 Xvast。
要通过 Xvast 浏览器注册 DRM-X 4.0 帐户, https://4.drm-x.com/register.aspx

登录新注册的 DRM-X 4.0 账户。在 DRM-X 4.0 控制面板中,首先点击“权限”添加新权限。设置权限描述、权限价格、开启次数、首次使用后失效时间、保护文档、禁止打印以及启用水印。您可以设置水印内容以防止盗版。动态水印支持两种显示模式。第一种模式是设置水印的位置和变化频率。第二种模式是跑马灯效果,安全性更高。


DRM-X 4.0 继承了 3.0 的黑名单防录屏功能。通过设置黑名单程序,可以有效阻止黑名单程序进行录屏或截图操作。当用户打开受保护的文件时,如果 Xvast 检测到黑名单程序正在运行,Xvast 将立即阻止该程序的进程。目前,黑名单程序包含数百种录屏和截图程序。

海海软件提供独有的智能防录屏技术。该技术能够自动高效地检测市面上现有的屏幕录制软件,甚至包括未来可能推出的录制软件。这有助于内容提供商更好地控制其受DRM-X 4.0保护的内容的权限。

通过这些步骤,我们已经成功获得了自定义许可证。

然后,我们添加一个新的许可证配置文件,使用我们上面添加的权限。我们可以使用此配置文件加密文件。

需要强调的是,“系统中的 productID”的值必须与您数据库中的课程 ID 相同。通常,学生的选课记录存储在“mdl_role_assignments”表中。这里,“课程示例”的课程 ID 为 56,因此我们需要将“系统中的 productID”更改为 60。此外,我们可以发现,用户 ID 为 6 的用户帐户拥有学习该课程的权限。

如果您觉得在庞大的数据库中查找参数过于繁琐,也可以直接在 Moodle 帐户中查找该参数。点击课程“参与者”列中的“设置”。将鼠标悬停在“权限”上。您可以在屏幕左下角找到 URL。最后一个数字就是我们要查找的课程的产品 ID。

然后我们可以使用该配置文件加密文件。
点击进入“保护文件”,选择我们上面添加的正确的许可证配置文件。


选择要加密的文件,然后单击“开始”。

好了,现在我们已经加密了一个视频文件。其他音频文件或PDF文件也可以用同样的方法加密。
加密的详细过程可以参考以下教程:
视频加密: https://www.drm-x.com/DRM-X4.0_encryption_tutorial.aspx
网页加密: https://www.drm-x.com/DRM_web_page_html_encryption_tutorial.aspx
3:moodle 与 DRM-X 4.0 的集成。
现在我们需要将 DRM-X 4.0 与 Moodle 网站集成。集成完成后,选择您课程的学生只需登录您的 Moodle 网站即可查看课程中的加密内容。下面我们来演示一下具体的集成操作。
根据示例代码,您需要复制四个名为“index.php”、“reindex.php”、“login.php”和“licstore.php”的页面。当用户打开加密文件时,系统会自动跳转到“index.php”页面,检查用户是否已登录其Moodle账户。如果未登录,则跳转到“reindex.php”页面进行登录。否则,直接跳转到“login.php”页面,验证用户的密码是否正确,以及用户是否拥有学习相应课程的权限等。您可以在此页面自由添加和修改验证码。之后,如果用户通过验证,系统将跳转到“licstore.php”页面获取许可证并打开加密文件。
在 'index.php' 文件中,获取加密文件的相应信息,包括 profileid、clientinfo、rightsid、yourproductid、platform、contenttype、version 和 return_url。将这些参数存储在全局变量 $USER 中,以便后续调用。然后判断用户是否已登录其 Moodle 帐户。
require_once("../config.php");
$USER->ProfileID = $_REQUEST["profileid"];
$USER->ClientInfo = $_REQUEST["clientinfo"];
$USER->Platform = $_REQUEST["platform"];
$USER->ContentType = $_REQUEST["contenttype"];
$USER->ProductID = $_REQUEST["yourproductid"];
$USER->RightsID = $_REQUEST["rightsid"];
$USER->Version = $_REQUEST["version"];
$USER->Return_URL = $_REQUEST["return_url"];
if (isloggedin() or isguestuser()){
echo "<script language=JavaScript>location='login.php';</SCRIPT>";
}else{
echo "<script language=JavaScript>location='reindex.php';</SCRIPT>";
}如果学生尚未登录 Moodle,请跳转至 'reindex.php'(这不是 Moodle 的初始登录页面,该页面允许用户在不登录 Moodle 的情况下获取查看加密文件的许可证)。否则,请跳转至 login.php 进行具体验证。
如果用户尚未登录Moodle,则需要验证密码。如果用户已登录Moodle,则无需验证密码。
if($_GET['un'] == 'login'){
$username = $_REQUEST["username"];
$pwd = $_REQUEST["password"];
/****** verify the password *******/
$result = mysqli_query($dbcon,"SELECT ID,password,email FROM mdl_user WHERE username ='" .$username. "'");
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
$email = $row['email'];
$t_hasher = new \PasswordHash(8, FALSE);
$newpwd= $t_hasher->CheckPassword($pwd, $row['password']);
if ($newpwd != true ) {
$info = "Your Account or Password is incorrect! <br><br>Please revisit the course!";
}else{
$ username = $username;
$_SESSION['pwd'] = $pwd;
$ userid = $row['ID'];
$ userEmail = $email;
}
/** **/
// If the user has already logged into moodle, there is no need to verify the password.
}else{
$username = $USER->username;
$userEmail = $USER->email;
$userid = $USER->id;
}然后验证用户是否拥有学习该课程的权限。如果验证通过,将用户信息保存到 DRM-X 4.0 帐户,然后获取许可证并跳转到下一页打开加密文件。请注意,下方红色代码需要替换为您的 DRM-X 4.0 帐户、您设置的 Web 服务身份验证字符串(如下所述)以及 GroupID。
// Query the order based on the user ID
$id_query = mysqli_query($dbcon,"SELECT id FROM mdl_user WHERE username='" .$username. "'");
$id_row = mysqli_fetch_array($id_query, MYSQLI_ASSOC);
$id_result = $id_row['id'];
$courseid_query = mysqli_query($dbcon,"SELECT contextid FROM mdl_role_assignments WHERE userid='" .$id_result. "'");
while($courseid_row = mysqli_fetch_array($courseid_query, MYSQLI_ASSOC)){
$courseid_result = $courseid_row['contextid'];
if ($courseid_result == $USER->ProductID){
/******* Check whether the user exists on the DRM-X platform********/
$wsdl="http://4.drm-x.com/haihaisoftlicenseservice.asmx?wsdl";
$CheckUser_param = array(
'UserName' => $username,
'AdminEmail' => 'yourEmail@163.com', //your DRM-X 4.0 account
'WebServiceAuthStr' => 'aaaaaa', // the Web Service Authentication String you set in DRM-X 4.0 background
);
$client = new nusoap_client($wsdl, 'wsdl');
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;
$CheckUser = $client->call('CheckUserExists', array('parameters' => $CheckUser_param), ', ', true, true);
$CheckUser_result = $CheckUser['CheckUserExistsResult'];
/*** End detecting whether the user exists **/
//If the username is not exists, call "AddNewUser" to add user.
if($CheckUser_result == "False"){
$add_user_param = array(
'AdminEmail' => 'yourEmail@163.com',// your DRM-X 4.0 account
'WebServiceAuthStr' => 'aaaaaa',// the Web Service Authentication String you set in DRM-X 4.0 background
'GroupID' => '11726',//GroupID
'UserLoginName' => $username,// Username or ID
'UserPassword' => 'N/A',
'UserEmail' => $userEmail,
'UserFullName' => 'N/A',
'Title' => 'N/A',
'Company' => 'N/A',
'Address' => 'N/A',
'City' => 'N/A',
'Province' => 'N/A',
'ZipCode' => 'N/A',
'Phone' => 'N/A',
'CompanyURL' => 'N/A',
'SecurityQuestion' => 'N/A',
'SecurityAnswer' => 'N/A',
'IP' => getIP(),//
'Money' => '0',//
'BindNumber' => '2',//
'IsApproved' => 'yes',//
'IsLockedOut' => 'no',//
);
$add_user = $client->call('AddNewUser', array('parameters' => $add_user_param), ', ', true, true);
$result = $add_user['AddNewUserResult'];
}
/*** Successfully added new users ***/
/***** obtain a license after the license authority is updated ****/
$param = array(
'AdminEmail' => 'yourEmail@163.com',// your DRM-X 4.0 account
'WebServiceAuthStr' => 'aaaaaa',// the Web Service Authentication String you set in DRM-X 4.0 background
'ProfileID' => $USER->ProfileID,
'ClientInfo' => $USER->ClientInfo,
'RightsID' => $USER->RightsID,
'UserLoginName' => $username,
'UserFullName' => 'N/A',
'GroupID' => 11726,//GroupID
'Message' => 'N/A',
'IP' => getIP(),
'Platform' => $USER->Platform,
'ContentType' => $USER->ContentType,
'Version' => $USER->Version,
);
$client = new nusoap_client($wsdl, 'wsdl');
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;
/***** Obtain a license by calling the getLicenseRemoteToTableWithVersion method ******/
$result = $client->call('getLicenseRemoteToTableWithVersion', array('parameters' => $param), ', ', true, true);
$license = $result['getLicenseRemoteToTableWithVersionResult'];
$message = $result['Message'];
if(stripos($license, ' <div id="License_table_DRM-x4" style="display:none;">' ) === false )
echo "<SCRIPT language=JavaScript>'location='LicError.php?error=".$license."&message=".$message."';</SCRIPT>";
/***** After obtaining the license, store the license and message into $USER, then jump to the licstore page. ******/
$USER->license = $license;
$USER->message = $message;
echo "<SCRIPT language=JavaScript>location='licstore.php';</SCRIPT>";
$flag = 1;
$info = "Getting license...";
exit;
}
}这里只是一个最简单的验证示例。如果您在 Moodle 中安装了更多功能插件,例如课程购买、费用支付等,您还需要在代码中添加验证,以确认学生是否已提交订单以及付款是否已完成。
再次进入DRM-X平台的账户设置选项,点击“网站集成首选项”,然后点击“自定义登录页面集成”。填写“Web服务身份验证字符串”和“许可证URL”。用户打开加密文件后,将跳转到您的Moodle集成页面进行验证。


现在,我们基本完成了DRM-X与Moodle网站的集成。之后,您只需将加密文件发送给学生,他们应该可以在Xvast浏览器中打开它。但是,即使收到了文件,那些没有课程访问权限的学生也无法查看加密文件。
您还可以将加密文件直接嵌入到您的 Moodle 页面中,以便您的学生可以直接在您的网站上浏览和学习您的课程。
在您刚刚创建的“课程示例”主题 1 中添加活动或资源,然后选择该页面。


如下所示,在 HTML 列中添加嵌入代码。嵌入代码已保存在示例代码文件夹中,您只需将下方红色 URL 替换为您加密文件的 URL 即可。

'<'div id="Xvast_Video_URL" style="display: none;"'>'https://www.drm-x.com/download/DRMX4/JesusFilm_cn_P.mp4'<'/div'>'
'<'script type="text/javascript" src="https://www.xvast.com/dist/js/embedPlayer.js"'><'/script'>'
'<'script type="text/javascript" src="https://www.xvast.com/dist/js/video.js"'><'/script'>'
'<'script type="text/javascript" src="https://www.xvast.com/dist/wordpress/XvastVideoJSPlayer.js"'><'/script'>'请检查并禁用网站设置中的“将 URL 转换为链接和图像”设置(控制面板--网站管理--插件--过滤器--管理过滤器)。如下图所示:

4:打好你的球。
集成完成后,您即可播放课程。在 Xvast 浏览器中打开您的网站,并使用学生账号登录。然后打开“课程示例”,Xvast 将自动获取许可证并播放加密内容。

嵌入代码后,视频将以这种方式显示。视频播放时会出现两个移动的水印。您可以自定义水印内容以防止被录制。此外,DRM-X 4.0 还具备黑名单和智能防录屏技术,可防止恶意录制或截屏。参加课程的学生可以直接播放加密视频。
同样,您可以将加密的 PDF 文件链接直接添加到课程页面。学生可以获得阅读许可证。水印可以防止恶意截屏,因为水印中的内容会泄露上传者的个人信息。

到目前为止,我们已经介绍了如何基于 Moodle 构建教学网站、如何使用 DRM-X 4.0 加密文件以及如何将 DRM-X 4.0 与 Moodle 集成。借助这些功能,您的学生可以轻松查看加密文件,同时您也可以避免因课程转让或出售而导致的盗版问题。
其他 DRM-X 4.0 教程
DRM-X 4.0 HTML 网页加密教程DRM-X 4.0 可加密网页(包括 HTML、CSS、JavaScript 和图像),并控制谁可以查看您的网页内容。它可以阻止复制、防止打印和屏幕截图,并在内容不再需要查看时使其过期。
立即观看
DRM-X 4.0 与 WordPress 集成自定义登录页面集成是指当客户从您的网站订购受保护的内容时,播放该内容时会弹出您网站自定义的登录页面。客户输入您网站帐户的用户名和密码后,即可立即获得播放受保护文件的许可证。这需要您创建一个新的DRM登录页面。
立即观看


