顯示具有 Cryptography 標籤的文章。 顯示所有文章
顯示具有 Cryptography 標籤的文章。 顯示所有文章

2023-06-02

[PHP 5.x]PHPMailer升級TLS1.2

這幾天為了替公司省錢,捨身跳進PHP的坑裡幫廠商救火XD 這個案子是用PHP 5.6、YiiMailer 1.6(include PHPMailer 5.2.8)開發,環境為AWS UBUNTU、Nginx,用途是讓指定品牌透過網站問券方式預約免費膚質檢測服務。這次發生的問題是當用戶填完問券,按下確認時系統卻無法發信,並回傳錯誤訊息:SMTP connect() failed.

最直覺當然是直接先把問題丟給ChatGPT,我也按照他的建議逐一排查,雖然沒有直接解決我的問題,但也讓我更認識我們家的Server環境。由於不只一個活動網站架在這個Server上,甚至不同品牌合作的廠商所使用的PHP版本也不一致。為了避免讓同事等待太久又不一定能解決(幫自己留後路XD),所以我首先請同事直接請原廠商為專案升級PHP版本報價。

在他去請廠商報價的同時,我用了以下方法排查:

一、Telnet (正常)

telnet smtp.office365.com 587
顯示正常:
220 SI1PR02CA0000.outlook.office365.com Microsoft ESMTP MAIL Service ready at Mon, 29 May 2023 05:09:46 +0000

2021-11-27

[C#]SHA1Managed小發現

最近為了驗證一支公司的小程式,研究了一番SHA1加密,以及System.Security.Cryptography提供的SHA1Managed()和底下的方法。

在還不了解原理前程式是這樣寫的:

byte[] buff = hexToByte(hex);

SHA1Managed sha1 = new SHA1Managed();
byte[] value = sha1.ComputeHash(buff);

string Code = "";
foreach (var hash in value)
{
    Code += hash.ToString("X2");
}
Console.WriteLine(Code);

抱歉我跳過一個步驟,就是程式最一開始還有一個function是將hex code轉成byte,所以我們才能使用ComputeHash()。當然,hex也是陣列,是由0~F的組合。

而value你會得到一個長度為20的byte陣列。