18-12-2020, Saat: 10:55
(18-12-2020, Saat: 10:47)hi_selamlar Adlı Kullanıcıdan Alıntı:(18-12-2020, Saat: 10:16)vkamadan Adlı Kullanıcıdan Alıntı: Merhaba ,
CryptoJS adında bir Java Script kitaplığı mevcut (https://cryptojs.gitbook.io/docs/), içerisinde temel şifreleme algoritmaları barındırıyor.
var yazi= "edf218f1573f12e3969e4c50a0b6d259cd7aed89"; var base64yazi = CryptoJS.enc.Base64.stringify(yazi);
Bu kullanım sonrasında ilgili kitaplığın verdiği sonuç 7fIY8Vc/EuOWnkxQoLbSWc167Yk= iken ,
Delphi tarafında sunulan fonksiyonlarla aşağı daki gibi bir kullanımda ,
//uses System.NetEncoding procedure Kodla ; var yazi , base64yazi : string ; begin yazi:='edf218f1573f12e3969e4c50a0b6d259cd7aed89'; base64yazi := TNetEncoding.Base64.Encode( yazi ); end;
aynı değer için aldığım sonuç ZWRmMjE4ZjE1NzNmMTJlMzk2OWU0YzUwYTBiNmQyNTljZDdhZWQ4OQ==
Web tabanlı online base64 Decode , Encode araçlarında da Delphi deki sonucu alıyorum, CryptoJS kitaplığı nın ürettiği türde bir dönüşüm gerçekleştirmek istiyorum.
Desteğinizi rica ederim.
Merhabalar,
Bir kaç konuda değinilmiş incelemek isteyebilirsiniz.
1. https://stackoverflow.com/questions/3218...encryption
2. https://stackoverflow.com/questions/5795...rom-base64
3. https://github.com/brix/crypto-js/issues/150
Kolay gelsin.
Teşekkürler , bu referanslar la karşılaşmıştım, ne yazık ki bir çözüme ulaşamadım.
ilgili JS kitaplığının kaynak kodlarından (https://cdn.jsdelivr.net/npm/crypto-js@4...-base64.js) yola çıkılarak bir sonuca varma niyetine girdim ancak işin içinden çıkamadım.
* var base64String = CryptoJS.enc.Base64.stringify(wordArray);
*/
stringify: function (wordArray) {
// Shortcuts
var words = wordArray.words;
var sigBytes = wordArray.sigBytes;
var map = this._map;
// Clamp excess bits
wordArray.clamp();
// Convert
var base64Chars = [];
for (var i = 0; i < sigBytes; i += 3) {
var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {
base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
}
}
// Add padding
var paddingChar = map.charAt(64);
if (paddingChar) {
while (base64Chars.length % 4) {
base64Chars.push(paddingChar);
}
}
return base64Chars.join('');

