像http://play.golang.org/p/fD7mx2k4Yc
\n\n窗口rdp密码加密 http://www.remkoweijnen.nl/blog/2007/10/18/how-rdp-passwords-are-encrypted/
\n\n package main\n\n import (\n "fmt"\n "log"\n "syscall"\n "unsafe"\n )\n\n const (\n CRYPTPROTECT_UI_FORBIDDEN = 0x1\n )\n\n var (\n dllcrypt32 = syscall.NewLazyDLL("Crypt32.dll")\n dllkernel32 = syscall.NewLazyDLL("Kernel32.dll")\n\n procEncryptData = dllcrypt32.NewProc("CryptProtectData")\n procDecryptData = dllcrypt32.NewProc("CryptUnprotectData")\n procLocalFree = dllkernel32.NewProc("LocalFree")\n )\n\n type DATA_BLOB struct {\n cbData uint32\n pbData *byte\n }\n\n func NewBlob(d []byte) *DATA_BLOB {\n if len(d) == 0 {\n return &DATA_BLOB{}\n }\n return &DATA_BLOB{\n pbData: &d[0],\n cbData: uint32(len(d)),\n }\n }\n\n func (b *DATA_BLOB) ToByteArray() []byte {\n d := make([]byte, b.cbData)\n copy(d, …Run Code Online (Sandbox Code Playgroud)