吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1174|回复: 3
收起左侧

[其他原创] Power Shell 内容加密以及解密,外加油猴脚本网页解密

[复制链接]
aichiyu 发表于 2024-6-14 14:45
复制内容之后运行,会把加密的内容粘贴到剪贴板,直接粘贴就像,自行修改密码。
会在运行的目录中生成历史文本及key。
解密是同样的方式。
加密如下
[Asm] 纯文本查看 复制代码
$plaintext = Get-Clipboard
#$加密密钥 = -join ((65..90) + (97..122) + (48..57) | Get-Random -Count 16 | % {[char]$_})#随机16位
$加密密钥 = "8IAOJ1M9a6AnK1Ze"
$key = [System.Text.Encoding]::UTF8.GetBytes("$加密密钥") # 8IAOJ1M9a6AnK1Ze
$iv = [System.Text.Encoding]::UTF8.GetBytes("EyXThqq44nRb8197")

# 创建AES加密器对象
$aes = New-Object System.Security.Cryptography.AesCryptoServiceProvider
$aes.Mode = [System.Security.Cryptography.CipherMode]::CBC
$aes.Padding = [System.Security.Cryptography.PaddingMode]::PKCS7
$aes.KeySize = 128
$aes.Key = $key
$aes.IV = $iv

# 创建加密器和解密器对象
$encryptor = $aes.CreateEncryptor()
$decryptor = $aes.CreateDecryptor()

# 加密文本
$plaintextBytes = [System.Text.Encoding]::UTF8.GetBytes($plaintext)
$encryptedBytes = $encryptor.TransformFinalBlock($plaintextBytes, 0, $plaintextBytes.Length)
$encryptedText = [System.Convert]::ToBase64String($encryptedBytes)

# 输出加密后的文本
$encryptedText | Set-Clipboard
$合成 = "内容:$($plaintext) 加密结果:$($encryptedText) 加密密钥:$($加密密钥) 加密向量:EyXThqq44nRb8197"
#$合成 | Set-Clipboard
Add-Content -Path .\log.txt -Value $合成
Clear-Content .\key.txt #清空key.txt
Add-Content -Path .\key.txt -Value $加密密钥
Write-Output "加密后的文本: $encryptedText $加密密钥"

解密如下:
[Asm] 纯文本查看 复制代码
$encryptedText = Get-Clipboard  # 将加密后的文本替换为实际的加密结果
$加密密钥 = Get-Content .\key.txt
#$加密密钥 = "VMcQjEl5WSKyHCTN"
$key = [System.Text.Encoding]::UTF8.GetBytes($加密密钥)
$iv = [System.Text.Encoding]::UTF8.GetBytes("EyXThqq44nRb8197")

# 创建AES加密器对象
$aes = New-Object System.Security.Cryptography.AesCryptoServiceProvider
$aes.Mode = [System.Security.Cryptography.CipherMode]::CBC
$aes.Padding = [System.Security.Cryptography.PaddingMode]::PKCS7
$aes.KeySize = 128
$aes.Key = $key
$aes.IV = $iv

# 创建加密器和解密器对象
$encryptor = $aes.CreateEncryptor()
$decryptor = $aes.CreateDecryptor()

# 解密文本
$encryptedBytes = [System.Convert]::FromBase64String($encryptedText)
$decryptedBytes = $decryptor.TransformFinalBlock($encryptedBytes, 0, $encryptedBytes.Length)
$decryptedText = [System.Text.Encoding]::UTF8.GetString($decryptedBytes)

# 输出解密后的文本
#$processedText = $decryptedText -replace '。',"。`r"

$decryptedText | Set-Clipboard
Write-Output "解密后的文本: $decryptedText"


油猴脚本需要自己添加网站
我自己使用是用在outlook中,用于邮箱
注意:加密的内容必须是在p标签内并且加密结尾是=,然后只需要点击一下就可以了。
[Asm] 纯文本查看 复制代码
// ==UserScript==
// [url=home.php?mod=space&uid=170990]@name[/url]         解密
// [url=home.php?mod=space&uid=467642]@namespace[/url]    ohao
// [url=home.php?mod=space&uid=1248337]@version[/url]      1.0
// @description  使用等号(=)解密选定的内容或通过单击“解密”按钮解密,并将Markdown转换为HTML
// [url=home.php?mod=space&uid=195849]@match[/url]        [url]https://outlook.office.com/mail/inbox/id/[/url]*
// @match        [url]https://outlook.live.com/mail/0/sentitems/id/[/url]*
// [url=home.php?mod=space&uid=609072]@grant[/url]        none
// @require      [url]https://cdn.bootcdn.net/ajax/libs/crypto-js/4.1.1/crypto-js.js[/url]
// @require      [url]https://cdn.bootcdn.net/ajax/libs/showdown/1.9.1/showdown.min.js[/url]
// ==/UserScript==

(function() {
    'use strict';

    // 默认密钥
    var defaultKey = CryptoJS.enc.Utf8.parse("8IAOJ1M9a6AnK1Ze");

    // AES解密函数
    function decryptAES(encryptedText, key) {
        var iv = CryptoJS.enc.Utf8.parse("EyXThqq44nRb8197");
        var decrypted;
        try {
            decrypted = CryptoJS.AES.decrypt(encryptedText, key, {
                iv: iv,
                mode: CryptoJS.mode.CBC,
                padding: CryptoJS.pad.Pkcs7
            });
        } catch (error) {
            if (encryptedText.trim() === "") {
                var newKey = prompt("输入解密密钥:");
                if (newKey) {
                    return decryptAES(encryptedText, CryptoJS.enc.Utf8.parse(newKey));
                }
            }
            return "解密错误";
        }
        return decrypted.toString(CryptoJS.enc.Utf8);
    }

    // Markdown转换为HTML
    function markdownToHTML(markdownText) {
        var converter = new showdown.Converter();
        var html = converter.makeHtml(markdownText);
        return html;
    }

    // 创建解密按钮
    function createDecryptButton(contentElement) {
        var button = document.createElement("button");
        button.innerHTML = "Decrypt";
        button.style.marginLeft = "5px";
        button.addEventListener("click", function() {
            var encryptedText = contentElement.textContent;
            var key = prompt("输入解密密钥:");
            if (key) {
                var decryptedText = decryptAES(encryptedText, CryptoJS.enc.Utf8.parse(key));
                if (decryptedText !== "解密错误") {
                    var html = markdownToHTML(decryptedText);
                    contentElement.innerHTML = html;
                }
            }
        });
        return button;
    }

    // 监听文档的鼠标抬起事件,如果有选择文本,则判断是否有等号进行解密或创建解密按钮
    document.addEventListener("mouseup", function() {
        var selectedText = window.getSelection().toString();
        if (selectedText) {
            var contentElement = window.getSelection().anchorNode.parentElement;
            if (contentElement.tagName === "P") {
                if (contentElement.textContent.includes("=")) {
                    var decryptedText = decryptAES(contentElement.textContent, defaultKey);
                    if (decryptedText !== "Decryption Error") {
                        var html = markdownToHTML(decryptedText);
                        contentElement.innerHTML = html;
                    }
                    // 移除Decrypt按钮
                    var decryptButton = contentElement.querySelector(".decrypt-button");
                    if (decryptButton) {
                        decryptButton.remove();
                    }
                } else {
                    var button = createDecryptButton(contentElement);
                    button.classList.add("decrypt-button");
                    contentElement.appendChild(button);
                }
            }
        } else {
            // 取消选择文本时移除Decrypt按钮
            var decryptButton = document.querySelector(".decrypt-button");
            if (decryptButton) {
                decryptButton.remove();
            }
        }
    });
})();

方式,好像需要在powershell ise中运行
QQ文件 20240614142951.png
image.png
33.gif
image.png

免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ysjd22 发表于 2024-6-14 15:39
看起来很不错的样子,试试效果
bgwu666 发表于 2024-6-14 16:18
sscnc 发表于 2024-6-14 16:58
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表