如何在脚本中重新创建ASP加密功能?

时间:2015-10-14 15:41:06

标签: asp.net bash powershell encryption scripting

我目前有一个ASP Web应用程序,除此之外,还对字符串执行加密。我想在我的应用程序之外使用这个加密函数来加密一组字符串。我需要使用相同的加密函数,因为这些加密的字符串将被插入到应用程序的数据库中并在应用程序内解密。

问:是否可以编写一个PowerShell脚本来使用ASP加密功能?如果没有,那么正确的"工具"读取一组字符串并以与ASP应用程序相同的方式对它们进行加密是需要的,以便稍后应用程序可以对它们进行解密?

加密功能:

Function Encrypt(pwd)
    Dim key
    key = "_-#{[}]|!`~>(-<+"

    Dim strRet
    Dim nStrLen
    nStrLen = Len(pwd)
    Dim n
    For n = 1 To nStrLen
        strRet = strRet & Chr(Asc(Mid(pwd, n, 1)) Xor Asc(Mid(key, n, 1)))
    Next

    Encrypt = strRet
End Function

1 个答案:

答案 0 :(得分:1)

你有几个选择。

首先,您可以将该脚本函数迁移到.NET CLR语言(如C#或VB),然后将该函数打包到程序集中。然后,您可以使用add-type cmdlet从Powershell脚本调用该程序集。

Add-Type -Path c:\path\myAssembly.dll

其次,您可以实际使用C#或VB.NET转换源并将其直接集成到具有add-type变体的Powershell脚本中,-TypeDefinition开关指向包含源文本的局部变量(完全未经测试)示例):

$mySource=@"public class psdemo{
              public int somevalue(){
                  return 100;
              }
          }"@
Add-Type -TypeDefinition $mySource
[psdemo]::somevalue()