AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / Perguntas / 79590937
Accepted
Josh
Josh
Asked: 2025-04-24 23:06:03 +0800 CST2025-04-24 23:06:03 +0800 CST 2025-04-24 23:06:03 +0800 CST

Produza uma barra em uma string base64 para testar a codificação base64url

  • 772

Tenho um teste de unidade para uma função segura de URL Base64 e quero ter certeza de que ele está lidando corretamente com três coisas:

  1. Substitui +por-
  2. Substitui /por_
  3. Acabamentos =na ponta

Quero que meu teste unitário tenha uma string que produza +e termine com um =da string. Mas não estou conseguindo criar o /.

public void ToBase64Url_ValidInput_ReturnsExpectedEncodedString()
{
    // Arrange
    var allAciiChars = "\0\u0001\u0002\u0003\u0004\u0005\u0006\a\b\t\n\v\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u007f";
    var inputBytes = Encoding.UTF8.GetBytes(allAciiChars);
    var expectedEncodedString = "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0-P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn8";

    // Act
    var result = inputBytes.ToBase64Url();

    // Assert
    Assert.Equal(expectedEncodedString, result);
}

O que preciso atualizar na string para produzir a barra quando ela for convertida para base64?

c#
  • 2 2 respostas
  • 44 Views

2 respostas

  • Voted
  1. Best Answer
    Vasya
    2025-04-24T23:32:30+08:002025-04-24T23:32:30+08:00

    Você precisa obter o binário 111111 em uma das etapas da codificação (antes da conversão final de binário para texto). Se você triplicar o ponto de interrogação na sua string de teste, deverá obter uma barra. Por exemplo:

    ... <=>???@ABCDEFGHIJKLMNOPQRSTUVWXYZ ...
    
    • 1
  2. Ipay Ipay
    2025-04-27T12:50:30+08:002025-04-27T12:50:30+08:00
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Chibi Image</title>
    </head>
    <body>
      <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAIAAAADnC86AAAACXBIWXMAAAsTAAALEwEAmpwYAAACN0lEQVR4nO2XPU4DQRSGv3NDcKJtUSKC+gEXoU3oBoX0d2h6AV6AHnIKhXUMD0A3pAHIJSq9ZPqJp1O2v07DRz1J99b6e0qMzkzE+S4ZyIAAAAAAAAAAD8cbuWDnRSGj1Hpr+cpUzA2yHd5Zt0cF7ie3ZX0yn4xH+01lS5mp9LFmB2T3YhTSYlkqRZ7bH7AqfEDZ0Y5br5YwI9KPbUtA35SZ8MYuNpFR3Cj62G0xM+nCj9p7F3GjBt7M5F1l0NW2d4zjzAm3nlfpFXzGf9LDfjR4Fh+7xdZ2wPa8PqnR/UkNtXH8RFrIdOWOkfQ6rMY5m+R7NpB+n+Xb8k95s3k9PRP9X5Vb3KHlExjHtyIjMbF97HEdjN+Ow2ZHRW6vA7hzljWTh1SG09WXEjtwNf1Tx0ev+nYmv5W3r/qrMnM7epw0sR5cTA3I5ch2T+xnGtuTVe6yUjs13PwAAAAAAAAAAgP+neAo/5YFgpUAAAAASUVORK5CYII=iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAACjUlEQVRoQ+2ZP0vDQBiG38naW5U2qB1oJVGLq0I7gFjY2dHfwXNAJGo2NiU1MCNZWkj7A+ha2FvYh0VLZWsoCBP8Dk5xeGJo1CWXDy5iPld/vt93755ZNIR0TAZb1x6M8LM/MCSbcLqZTGGLy4bPpxgHZovMQe6NwDDC2+UwSvsn7+wfs5jIF5rBMmYnsFMtG+RwNcIgtbIpGhdAzzOrsvuC7eysyMHXphokhZgmzskkEAl2piZVShVC3WYxzzTSyimKMUc8x1lGjVRAEXSEUE5YKehL7T1APjz7RQCr7x9os6lBUvRrwHwld6zbyJJMROwqkk7C6SgNKnDApRVoW2wDDCfIEHcoBjsEjkA8kxnmqLoPS2s5c+rw8yoQpyT3GVpkM0GyG3FslhWk4vg5oG4bnyNRmj4Tx6LE7y9SaD9oNQQk3InIij7yoGbJsmHtIEXWiTVyDWKcZLhX+gCbdMEHYtaCV2BD2bH66i7uqCN+FvCwK+qGO3wv3tj7L9qX8Af5YlQleI6s5AAAAAElFTkSuQmCCiVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAIAAAADnC86AAAACXBIWXMAAAsTAAALEwEAmpwYAAACbUlEQVR4nO2WvU7DQBCG33MCXUSc1FSN3UFW3QU3cQhdgVt3AVsKkgP3gF3cBd0BVFwWJUQT3MF9QpTkJRclFcN2+7L53dC1tfPaQGp/GUoZ7rXH88LiQQAAAAAAAB8/vqlD7qFtZ+fXe04wZoGHZk+iGk95KY9XMdXmx3XEcdiQOSrYymCB0NEgOdPVOoUeXLmvHjcS7Kw0nAYVfD4SLtQUr6fQ2N7La3qldDX+Y8cE5kjzwEXg0EVYw8VK3xleOB9Bd7J0rB4SbSMbAYemjU57OdrLO7D6fq9MJQb1+Pi7W2XXsfFxY2XyiQ4SOeDcZT+6rbeFb8riV7Hyi9eQGHLg5IYSP+4pPaT7tGJ4zCmZW8aWYdY1dr2j6wqEkzFMEt9uS/8LU4i60oP2g4zGe4PVV+KhPSn5Rcso0P1ElcCfeekve3c2dJk32OpoR3z/2V2wU/OoGHxeH9b3nzIs+pVXOtb9c/kAAAAASUVORK5CYII=iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAB90lEQVRoQ+2Z0W3DMAxF/xfk3EjBEmSJExEg0sh0Eg6NE9E1O4JplTcWE7p4rpD23Bey+8HeXv6PI+3k4wAIAAAAAAACg7n+ZIzFM6vDbr1PGZfxvZCM/9aqI/nVWWf0rvY9MWp6S4o/WlO15snqReE5t3kw7rZCl4h8kAvAxzZAZdbmJb/WeYkCG4+OqW9lFok1kFr2Vzxe6mVV4JXmUmzHTklrm30paic7zKQDXJVrySzlwzL5ekxjcI3uM4DjleY9H6Tkmvn9GYZbzEX2eZeElNhna9MKC+jSTZK1nEnkiRmV9wlYRWp0jaWz5ymotL0miM0RWkHGlvYknN2bixPYSm0rHU9tsUQH28E0xboGqGh8iP6hkg5ePB2f/++oGJpcjSU7Ht6yRf43jv4l/qaZJ9HEuXLQ+Tb8WrZykpj9KJ0rfEqkpdBKl4VnSTkAXwi0AXwn0IXggUIfAhYIsCFgh0LXb0jFNUwAAAABJRU5ErkJgggiVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAIAAAADnC86AAAACXBIWXMAAAsTAAALEwEAmpwYAAABtElEQVR4nO2Wv07DQBCFv2cMFKtWbULFS0XEF14AfIBWaBF3MFas0U3YBXMCFYFV3AFXJCUciE0z9tu4s6Fjp+PYHq9dkp6X6TqcPz4jGQAAAAAAAAAAeA+b2JcHXrVQ7XqjO9Gea6/Ht4/S5zzVYzsVJPlW03XR+dHfrtcR2+nOp+QhzHZze7cxStmuX0FhxEbz8UGWgIq/yqbgX0kI6+34a7JK4Vsm1UvXvMCWMPc6I9aB5LnbuRwvV7I8pOD8I3Pa1dHHMcZFcRmn7Nxum9RXQmfRoRVpM9fKNmz5mhcmY8Zfa4riX95gt6J8WkO6w9Ih5cToF6TK8qkXWQfhhR1U5XOhz12jJvGMJ7jOXEfgnhhR8kR1vGIM84c2YV0f+0fiHb3WRcEAAAAASUVORK5CYII=" />
    </body>
    </html>
    
    • 0

relate perguntas

  • Polly DecorrelatedJitterBackoffV2 - como calcular o tempo máximo necessário para concluir todas as novas tentativas?

  • Wpf. Role o DataGrid dentro do ScrollViewer

  • A pontuação que ganhei na página do jogo com .NET MAUI MVVM não é visível em outras páginas. Como posso manter os dados de pontuação no dispositivo local

  • Use a hierarquia TreeView com HierarchicalDataTemplate de dentro de um DataTemplate

  • Como posso melhorar essa interface de validação no .NET?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve