Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 75825 Skopiuj do schowka Szyfrowanie i deszyfrowanie RSA
Autor Wiadomość
Marecki 
Excel Expert



Wersja: Win Office 2021
Pomógł: 2638 razy
Posty: 8805
Wysłany: 09-05-2024, 16:36   Szyfrowanie i deszyfrowanie RSA

Hejka.
Potrzebuje waszej pomocy.

Zadaniem jest utworzenie tokenu zakodowanego w formacie Base64 używając algorytmu asymetrycznego szyfrowania RSA.
Mam zrobioną taką funkcję, ale ona wykorzystuje stronę WWW
Cytat:
https://www.devglan.com/online-tools/rsa-encryption-decryption
, a nie chcę się opierać o taką metodę.
Ma to być zrobione poprzez VBA - dostępne referencje VBA, API Windows, czy inne.
Inaczej mówiąc, nie chcę doinstalowywać żadnych dodatkowych bibliotek do systemu.
Da się ?

Mamy klucz publiczny zakodowany w formacie Base64
i mamy jakiś tekst do zakodowania
Kod:
Key_public = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuWosgHSpiRLadA0fQbzshi5TluliZfDsJujPlyYqp6A3qnzS3WmHxtwgO58uTbemQ1HCC2qwrMwuJqR6l8tgA4ilBMDbEEtkzgbjkJ6xoEqBptgxivP/ovOFYYoAnY6brZhXytCamSvjY9KI0g0McRk24pOueXT0cbb0tlwEEjVZ8NveQNKT2c1EEE2cjmW0XB3UlIBqNqiY2rWF86DcuFDTUy+KzSmTJTFvU/ENNyLTh5kkDOmB1SY1Zaw9/Q6+a4VJ0urKZPw+61jtzWmucp4CO2cfXg9qtF6cxFIrgfbtvLofGQg09Bh7Y6ZA5VfMRDVDYLjvHwDYUHg2dPIk0wIDAQAB"

sText = "84FD260CC44FCAC3FE0215B00BA699F272890B1C72B29E752D65FBB5653EF41E|1715261872687"

Na wyżej wymienionej stronie w pole
"Enter Plain Text to Encrypt" wstawiamy "sText ", a w
"Enter Public/Private key" wstawiamy "Key_public ",
następnie zaznaczamy RSA Key Type= Public key
jeszcze wybieramy metodę Select Cipher Type="RSA/ECB/PKCS1Padding"
i Encrypt
Otrzymamy klucz o długości 344 znaków zakończony dwoma ==
i na tym mi zależy.
W kodzie to wygląda tak:
Kod:
Sub Test()
    Dim Key_public As String
    Dim sText As String
    Dim sOut As String
    Dim x

    Key_public = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuWosgHSpiRLadA0fQbzshi5TluliZfDsJujPlyYqp6A3qnzS3WmHxtwgO58uTbemQ1HCC2qwrMwuJqR6l8tgA4ilBMDbEEtkzgbjkJ6xoEqBptgxivP/ovOFYYoAnY6brZhXytCamSvjY9KI0g0McRk24pOueXT0cbb0tlwEEjVZ8NveQNKT2c1EEE2cjmW0XB3UlIBqNqiY2rWF86DcuFDTUy+KzSmTJTFvU/ENNyLTh5kkDOmB1SY1Zaw9/Q6+a4VJ0urKZPw+61jtzWmucp4CO2cfXg9qtF6cxFIrgfbtvLofGQg09Bh7Y6ZA5VfMRDVDYLjvHwDYUHg2dPIk0wIDAQAB"
    sText = "84FD260CC44FCAC3FE0215B00BA699F272890B1C72B29E752D65FBB5653EF41E|1715261872687"

    sOut = Encrypt_Token_RSA(Key_public, sText)
    Range("A1").Value = sOut
End Sub

Function Encrypt_Token_RSA(sKey As String, sString As String) As String
    Dim xmlhttp As Object
    Dim sNewToken
    Dim Resp
    Dim Param As String

    Param = "{""textToEncrypt"":""" & sString & """,""publicKey"":""" & sKey & """,""privateKey"":""" & sKey & """,""keyType"":""publicKeyForEncryption"",""cipherType"":""RSA/ECB/PKCS1Padding""}"

    Set xmlhttp = CreateObject("MSXML2.XMLHTTP.6.0")
    With xmlhttp
        .Open "post", "https://www.devglan.com/online-tools/rsa-encrypt"
        .setRequestHeader "Content-Type", "application/json;charset=utf-8"
        .send (Param)
        Resp = .responseText
    End With

    sNewToken = VBA.Split(Resp, "encryptedOutput"":""")(1)
    sNewToken = VBA.Split(sNewToken, """,""decryptedOutput")(0)

    Encrypt_Token_RSA = sNewToken

End Function

Patrz załącznik.

Szyfrowanie RSA.xlsm
Pobierz Plik ściągnięto 17 raz(y) 20.74 KB

_________________
Hardware - ta część komputera, którą można kopnąć kiedy software przestanie funkcjonować.

FB
ID posta: 435238 Skopiuj do schowka
 
 
hurgadion 
ExcelSpec



Wersja: Win Office 2021
Pomógł: 1194 razy
Posty: 2746
Wysłany: 09-05-2024, 19:26   

Hej,
zagadnienie do łatwych nie należy, ale może coś pogrzebię na ten temat. Na tą chwilę mogę polecić Pythona, ma on bibliotekę rsa, dość łatwo się koduje i dekoduje wiadomości, można co nieco wygooglać na ten temat, pozdrawiam :lol:
ID posta: 435244 Skopiuj do schowka
 
 
Marecki 
Excel Expert



Wersja: Win Office 2021
Pomógł: 2638 razy
Posty: 8805
Wysłany: 09-05-2024, 19:52   

No właśnie w Python, Delphi, Javie,JavaScript, C++, C# itd. to nie problemu, bo mają zaimplementowane biblioteki Crypto, a VBA takich nie ma. Chyba że się mylę. :mrgreen:
_________________
Hardware - ta część komputera, którą można kopnąć kiedy software przestanie funkcjonować.

FB
ID posta: 435247 Skopiuj do schowka
 
 
hurgadion 
ExcelSpec



Wersja: Win Office 2021
Pomógł: 1194 razy
Posty: 2746
Wysłany: 09-05-2024, 20:35   

Nie wspomniałeś o Visual Basicu, może da się stamtąd importować jakąś bibliotekę do Excela, ale nigdy nie korzystałem z tego, więc nie wiem czy się da... :lol: Zresztą to też nie rozwiązuje to Twojego problemu, bo pewnie chciałbyś pokodować czysty algorytm RSA z tego co widzę :lol:
ID posta: 435248 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 365
Pomógł: 3469 razy
Posty: 10236
Wysłany: 09-05-2024, 22:21   

Znalazłem coś takiego:
'https://www.di-mgt.com.au/src/basModExp.bas.html

ale nie znam się na kryptografii, a też nie za bardzo rozumiem Twoje ograniczenia: z jakich bibliotek możesz, a z jakich nie możesz korzystać.

To jest czysty kod w VB6/VBA. Może sobie dopasujesz.
ID posta: 435254 Skopiuj do schowka
 
 
Marecki 
Excel Expert



Wersja: Win Office 2021
Pomógł: 2638 razy
Posty: 8805
Wysłany: 09-05-2024, 23:24   

Maciej Gonet napisał/a:
a też nie za bardzo rozumiem Twoje ograniczenia: z jakich bibliotek możesz, a z jakich nie możesz korzystać
Mogę korzystać z wszystkich bibliotek standardowych zawartych w VBA.
Nie chcę niczego doinstalowywać do systemu.
Dla przykładu, mogę zrobić skrypt w JavaScript
Kod:
const NodeRSA = require('node-rsa');

function encryptWithRSA(publicKey, plaintext) {
    // Tworzenie obiektu klucza RSA
    const key = new NodeRSA();
   
    // Importowanie klucza publicznego
    key.importKey(publicKey, 'pkcs8-public-pem');
   
    // Wyświetlenie klucza publicznego (opcjonalnie)
    console.log('Klucz publiczny:', key.exportKey('pkcs8-public-pem'));

    // Szyfrowanie tekstu przy użyciu klucza RSA
    const encrypted = key.encrypt(plaintext, 'base64');

    return encrypted;
}

// Klucz publiczny
const publicKey = `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuWosgHSpiRLadA0fQbzsh
i5TluliZfDsJujPlyYqp6A3qnzS3WmHxtwgO58uTbemQ1HCC2qwrMwuJqR6l8tgA
4ilBMDbEEtkzgbjkJ6xoEqBptgxivP/ovOFYYoAnY6brZhXytCamSvjY9KI0g0Mc
Rk24pOueXT0cbb0tlwEEjVZ8NveQNKT2c1EEE2cjmW0XB3UlIBqNqiY2rWF86Dcu
FDTUy+KzSmTJTFvU/ENNyLTh5kkDOmB1SY1Zaw9/Q6+a4VJ0urKZPw+61jtzWmuc
p4CO2cfXg9qtF6cxFIrgfbtvLofGQg09Bh7Y6ZA5VfMRDVDYLjvHwDYUHg2dPIk0
wIDAQAB
-----END PUBLIC KEY-----`;

// Tekst do zaszyfrowania
const plaintext = "84FD260CC44FCAC3FE0215B00BA699F272890B1C72B29E752D65FBB5653EF41E|1715199172023";

// Zaszyfrowanie tekstu przy użyciu klucza RSA
const encryptedText = encryptWithRSA(publicKey, plaintext);

console.log('Zaszyfrowany tekst:', encryptedText);
wrzucić go do pliku np Skrypt.js i uruchomić przez VBA w konsoli Shell CMD.
Niestety żeby to zadziałało, to muszę doinstalować bibliotekę node-rsa ,która jest przeznaczona dla środowiska Node.js. w VBA nie ma takiej.

A tą stronę przeglądałem, i nie umiem tego zaadaptować, ale dziękuję.
_________________
Hardware - ta część komputera, którą można kopnąć kiedy software przestanie funkcjonować.

FB
ID posta: 435258 Skopiuj do schowka
 
 
master_mix 
Excel Expert



Wersja: Win Office 365
Pomógł: 1292 razy
Posty: 2625
Wysłany: 10-05-2024, 00:54   

Marecki napisał/a:
C# itd. to nie problemu, bo mają zaimplementowane biblioteki Crypto, a VBA takich nie ma. Chyba że się mylę


skorzystaj z tej .Net'owej biblioteki
Kod:
CreateObject("System.Security.Cryptography.RSACryptoServiceProvider")


https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.rsacryptoserviceprovider?view=net-8.0
_________________

Podejmę współpracę (pracę)
Programowanie C#, Android, iOS, VB.NET, VBA, ASP.NET Core, WPF, Xamarin, Power Platforms, XAML, MVC, LINQ, Entity Framework. Bazy danych SQL Server, Oracle, MySQL, Firebird
Wrocław i okolice …lub zdalnie.
ID posta: 435259 Skopiuj do schowka
 
 
Marecki 
Excel Expert



Wersja: Win Office 2021
Pomógł: 2638 razy
Posty: 8805
Wysłany: 11-05-2024, 14:17   

master_mix, nie wiem jak w VBA.
Wychodzą same błędy.
W VB.net jest spoko, funkcja działa, ale nie umiem jej przełożyć na VBA.
Kod:
Imports System.Security.Cryptography
Imports System.Text

Module Module1
    Function Base64(ByVal data As Byte()) As String
        Return Convert.ToBase64String(data)
    End Function

    Function Encrypt(ByVal publicKeyPem As String, ByVal data As Byte()) As Byte()
        Using rsa As RSACryptoServiceProvider = ImportRsaPublicKey(publicKeyPem)
            Return rsa.Encrypt(data, False)
        End Using
    End Function

    Function ImportRsaPublicKey(ByVal pemKey As String) As RSACryptoServiceProvider
        Dim keyBytes As Byte() = Convert.FromBase64String(pemKey)
        Dim rsa As New RSACryptoServiceProvider()
        rsa.ImportSubjectPublicKeyInfo(keyBytes, Nothing)
        Return rsa
    End Function

    Sub Main()
        Dim publicKeyPem As String = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuWosgHSpiRLadA0fQbzshi5TluliZfDsJujPlyYqp6A3qnzS3WmHxtwgO58uTbemQ1HCC2qwrMwuJqR6l8tgA4ilBMDbEEtkzgbjkJ6xoEqBptgxivP/ovOFYYoAnY6brZhXytCamSvjY9KI0g0McRk24pOueXT0cbb0tlwEEjVZ8NveQNKT2c1EEE2cjmW0XB3UlIBqNqiY2rWF86DcuFDTUy+KzSmTJTFvU/ENNyLTh5kkDOmB1SY1Zaw9/Q6+a4VJ0urKZPw+61jtzWmucp4CO2cfXg9qtF6cxFIrgfbtvLofGQg09Bh7Y6ZA5VfMRDVDYLjvHwDYUHg2dPIk0wIDAQAB"
        Dim plainBytes As Byte() = Encoding.UTF8.GetBytes("84FD260CC44FCAC3FE0215B00BA699F272890B1C72B29E752D65FBB5653EF41E|1715428987503")
        Dim encryptedBytes As Byte() = Encrypt(publicKeyPem, plainBytes)
        Dim base64Result As String = Base64(encryptedBytes)
        Console.WriteLine(base64Result)
    End Sub
End Module
Otrzymuje z niej Token o długości 344 znaków zakończony dwoma==
Cytat:
dXZQbZk4/TMLhPfCrQnbDF7Dnh3CTczMHg4yXFCworqhfQrPc+fvSwMyoD0QC8eEGdL50Kv9jB++6z6A3x3ecirS4yIOqlZ0Bs6PNua4mNemdkliukZ97BhI6Rrcq1dcEmA33CH8L6qC46FI2uzqIux/HJTxlowYdNzcfg867Sgsll+QB8htTfr6/dZYaMl2yst+5O5qP5QXci+utFso+Vv017JhJJZtLIHoBcfm23NK0s3l10QeDc9LCEBmID9pabxufAMTrkjo0q8JzGXWJEGbzXIv6bby8b1cmEnywqVV3tidUrd1b8x66rAPJArJBQNwMrcFovPcRScYQaj+kQ==

Ktoś coś...... ???
_________________
Hardware - ta część komputera, którą można kopnąć kiedy software przestanie funkcjonować.

FB
ID posta: 435283 Skopiuj do schowka
 
 
master_mix 
Excel Expert



Wersja: Win Office 365
Pomógł: 1292 razy
Posty: 2625
Wysłany: 13-05-2024, 00:29   

Marku, faktycznie metoda ImportSubjectPublicKeyInfo obiektu nie jest dostępna w VBA, kilka innych też.

Kryptografia to nie moja bajka i nie jestem w stanie teraz podpowiedzieć z jakimi algorytmami szyfrowania należy pokombinować dla Twojego przypadku.

rozumiem że napisanie własnej biblioteki w C# odpada?

o ile orientujesz się w temacie szyfrowania
zobacz jeszcze: https://github.com/ekede/WTS-Classic-ASP-MVC-Framework/blob/master/inc/class/crypt/rsa.asp
może się przyda
_________________

Podejmę współpracę (pracę)
Programowanie C#, Android, iOS, VB.NET, VBA, ASP.NET Core, WPF, Xamarin, Power Platforms, XAML, MVC, LINQ, Entity Framework. Bazy danych SQL Server, Oracle, MySQL, Firebird
Wrocław i okolice …lub zdalnie.
ID posta: 435304 Skopiuj do schowka
 
 
Marecki 
Excel Expert



Wersja: Win Office 2021
Pomógł: 2638 razy
Posty: 8805
Wysłany: 13-05-2024, 19:48   

Eeee no, to ja myślałem że nasz Master ogarnia wszystkie bajki. 😂
Tzn. ja wiem, że on wie, tylko okazuje się że jest bardziej energooszczędny niż ja, żeby nie napisać leniwy. 🤣🤣🤣

A tak na poważnie, to teraz zastanawiam się nad dwoma rozwiązaniami.
1. Zrobić sobie DLL-kę, zarejestrować ją , włączyć dla niej referencje w Vba i tyle.
2. Zrobić plik sparametryzowany Exe i wywoływać go przez Shell Cmd albo PowerShell, przechwycić z konsoli odpowiedź i tyle.

Chyba skłonie się ku drugiemu.
Zbyszku dzięki za propozycje w C#, z DLL-ką sobie poradzę - chyba. :mrgreen:
Temat wciąż otwarty.
_________________
Hardware - ta część komputera, którą można kopnąć kiedy software przestanie funkcjonować.

FB
ID posta: 435320 Skopiuj do schowka
 
 
Rafał B. 
ExcelSpec



Wersja: Win Office 2021
Pomógł: 82 razy
Posty: 482
Wysłany: 15-05-2024, 01:39   

Jeśli dysponujesz kluczem w postaci XML*** lub możesz przekonwertować klucz PEM do XML, to może taki prosty kod pomoże

Kod:
' ``` Moduł klasy CryptographyRSA ```
Private RSA As Object
Private XML As Object


Private Sub Class_Initialize()

    Set RSA = VBA.CreateObject("System.Security.Cryptography.RSACryptoServiceProvider")
    Set XML = VBA.CreateObject("MSXML2.DOMDocument")
    End Sub


Private Sub Class_Terminate()

    Set RSA = Nothing
    Set XML = Nothing
    End Sub
   
   
Public Function EncryptDataWithRSA(ByVal dataToEncrypt As String, ByVal xmlPublicKey As String) As String

    RSA.FromXmlString (xmlPublicKey)

    Dim bytesToEncrypt() As Byte
        bytesToEncrypt = StrConv(dataToEncrypt, vbFromUnicode)

    Dim encryptedBytes() As Byte
        encryptedBytes = RSA.Encrypt(bytesToEncrypt, False)   ' False = PKCS#1 v1.5 padding

    Dim base64Encrypted As String
        base64Encrypted = EncodeBase64(encryptedBytes)

    RSA.Clear

    EncryptDataWithRSA = base64Encrypted
    End Function


Public Function EncodeBase64(arrData() As Byte) As String

    Dim objNode As Object
    Set objNode = XML.createElement("b64")
        objNode.DataType = "bin.base64"
        objNode.nodeTypedValue = arrData
   
    Dim base64String As String
        base64String = objNode.text

    base64String = Replace(base64String, vbCrLf, "")
    base64String = Replace(base64String, vbLf, "")

    EncodeBase64 = base64String

    Set objNode = Nothing
    End Function



Test szyfrowania (klucz XML jest ekwiwalentem klucza, który podałeś w postaci PEM):

Kod:
' ``` Zwykły moduł ```
Public Sub Test()
   
    Dim publicKey As String
        publicKey = _
            "<RSAKeyValue>" & _
                "<Modulus>" & _
                    "uWosgHSpiRLadA0fQbzshi5TluliZfDsJujPlyYqp6A3qnzS3WmHxtwgO58uTbemQ1HCC2qwrMwu" & _
                    "JqR6l8tgA4ilBMDbEEtkzgbjkJ6xoEqBptgxivP/ovOFYYoAnY6brZhXytCamSvjY9KI0g0McRk2" & _
                    "4pOueXT0cbb0tlwEEjVZ8NveQNKT2c1EEE2cjmW0XB3UlIBqNqiY2rWF86DcuFDTUy+KzSmTJTFv" & _
                    "U/ENNyLTh5kkDOmB1SY1Zaw9/Q6+a4VJ0urKZPw+61jtzWmucp4CO2cfXg9qtF6cxFIrgfbtvLof" & _
                    "GQg09Bh7Y6ZA5VfMRDVDYLjvHwDYUHg2dPIk0w==" & _
                "</Modulus>" & _
                "<Exponent>AQAB</Exponent>" & _
            "</RSAKeyValue>"
   
    Dim myString As String
        myString = _
            "84FD260CC44FCAC3FE0215B00BA699F272890B1" & _
            "C72B29E752D65FBB5653EF41E|1715261872687"
   
    With New CryptographyRSA
        Debug.Print .EncryptDataWithRSA(myString, publicKey)
    End With
    End Sub



Nie mam czasu grzebać, ale zaproponowana przez master_mixa i zaprezentowana powyżej biblioteka wydaje się dość obiecująca. Inną opcją może być WinAPI (Crypt* z biblioteki "advapi32.dll"), ale tam miałem problem z paddingiem w algorytmie szyfrowania.


*** przypuszczam tak na podstawie dokumentacji https://ksef-test.mf.gov.pl/ bo tutaj prezentują klucz w obu formach

Oczywiście do `System.Security.Cryptography.RSACryptoServiceProvider` wymagany doinstalowany .NET Framework 3.5
_________________
Częstym błędem jest zakładanie, że autorzy niezrozumiałego kodu będą w jakiś sposób potrafili wyrazić się jasno i klarownie w komentarzach. Kevlin Henney
ID posta: 435341 Skopiuj do schowka
 
 
Marecki 
Excel Expert



Wersja: Win Office 2021
Pomógł: 2638 razy
Posty: 8805
Wysłany: 17-05-2024, 16:48   

Rafał B., bardzo Ci dziękuję.
To co podałeś działa bez zarzutu - klasa i procedura.
Tylko nie wiem jak wygenerowałeś ten modulus?
Rafał B. napisał/a:
klucz XML jest ekwiwalentem klucza, który podałeś w postaci PEM
_________________
Hardware - ta część komputera, którą można kopnąć kiedy software przestanie funkcjonować.

FB
ID posta: 435385 Skopiuj do schowka
 
 
Rafał B. 
ExcelSpec



Wersja: Win Office 2021
Pomógł: 82 razy
Posty: 482
Wysłany: 17-05-2024, 18:49   

Tylko odpowiedz wcześniej czy będziesz miał dostęp tylko do klucza PEM, jak podałeś w pierwszym poście:

Kod:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhki(...)
-----END PUBLIC KEY-----


czy też do klucza w takiej formie:
Kod:
Sun RSA public key, 2048 bits
  modulus: 227413410044427400(...)
  public exponent: 65537


Z dokumentacji ksef wydaje się, że do obu, ale chcę się upewnić. Ja postać XML obliczyłem z tej drugiej postaci klucza. Postaram się to odtworzyć i opisać, tylko żebym na darmo nie pisał, jeśli jednak nie dysponujesz takimi danymi. Wiem, że obie formy PEM i XML są ekwiwalentne, ale dość ciężko w VBA je przerabiać z jednej na drugą. Próbowałem używać pierwszej formy klucza czyli PEM, ale poległem i spróbowałem inną metodą przy użyciu klucza XML, która wydała mi się dość obiecująca z racji dostępności metody RSACryptoServiceProvider.FromXmlString.

Daj też znać czy testowałeś jedynie generowanie bez błędu, czy też sprawdzałeś w praktyce czy działają tek wygenerowane tokeny na środowisku testowym KSeF, czy serwer je na pewno akceptuje? Bo ja nie miałem czasu odtwarzać tych zapytań do API, więc powyższą króciutką klasę napisałem "w ciemno" bez testu poza prymitywnym sprawdzeniem, czy po prostu generuje string na długość 344.
_________________
Częstym błędem jest zakładanie, że autorzy niezrozumiałego kodu będą w jakiś sposób potrafili wyrazić się jasno i klarownie w komentarzach. Kevlin Henney
ID posta: 435386 Skopiuj do schowka
 
 
Marecki 
Excel Expert



Wersja: Win Office 2021
Pomógł: 2638 razy
Posty: 8805
Wysłany: 17-05-2024, 19:25   

Na razie jest dostęp do obu kluczy, a co zmieni Ksef tego nikt nie wie. :-)
Rafał B. napisał/a:
czy działają tek wygenerowane tokeny na środowisku testowym KSeF
Tak działają- testowane.
Rafał B. napisał/a:
Ja postać XML obliczyłem z tej drugiej postaci klucza. Postaram się to odtworzyć i opisać
Super.

Mi zaczęło coś wychodzić z klucza PEM.
Mam formę szesnastkową,muszę to przerobić na tablicę bajtów i zakodować w Base64.
Tylko jeszcze walczę z tymi bajtami w tablicy, trzeba je odpowiedni powycinać, poprzesuwać i chyba będzie git.

Ty jak możesz to zapodaj rozwiązane z klucza info
Cytat:
Sun RSA public key, 2048 bits
modulus: 227413410044427400(...)
public exponent: 65537
_________________
Hardware - ta część komputera, którą można kopnąć kiedy software przestanie funkcjonować.

FB
ID posta: 435387 Skopiuj do schowka
 
 
Rafał B. 
ExcelSpec



Wersja: Win Office 2021
Pomógł: 82 razy
Posty: 482
Wysłany: 17-05-2024, 19:45   

To super, ze działa! Więc już rozwiązanie jest blisko.

Cytat:
Mam formę szesnastkową,muszę to przerobić na tablicę bajtów i zakodować w Base64.
Pamiętaj o tym paddingu zgodnie z dokumentacją `pkcs #1 v1.5`, bo otrzymasz prawdopodobnie za krótki token wynikowy. Ja właśnie na tym temacie poległem przy tym samym podejściu.

Postaram się przypomnieć jak ten modulus obliczałem, też jakieś cuda wianki z konwersją szesnastkową czy binarną tam były.
_________________
Częstym błędem jest zakładanie, że autorzy niezrozumiałego kodu będą w jakiś sposób potrafili wyrazić się jasno i klarownie w komentarzach. Kevlin Henney
ID posta: 435388 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.wip.pl

Archiwum

Strona uĹźywa plikĂłw cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przegl�darce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
SprawdĹş, w jaki sposĂłb przetwarzamy dane osobowe