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 / 问题

All perguntas(coding)

Martin Hope
kfernandez
Asked: 2025-04-29 14:03:43 +0800 CST

Como descriptografar um valor em Python que foi criptografado usando PHP openssl

  • 9

Tenho um valor que foi criptografado usando PHP openssl usando a cifra AES-CBC-256, mas a senha para o valor final também foi criptografada usando o mesmo método.openssl_encrypt($key, $cipher, $passphrase, 0, $iv)

Preciso conseguir descriptografar esses dados usando Python, mas estou tendo problemas com o tamanho do bloco.

Aqui está parte do código que tenho até agora. Testei descriptografá-lo em PHP e funciona corretamente. Meu valor final neste exemplo deve ser "Jimmy".

import base64
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad

localKey = base64.b64decode('Po0KPxyF')
localIv = base64.b64decode('s8W+/a4jkp9mhO3NkCL7Yg==')

encrypted_value = base64.b64decode('hl5n6Nq5QYtgKIyLEVCupA==')
encrypted_key = base64.b64decode('MGRHRFlaMzhCR0lxb2VHS1JHQXcrWkV2bkJpNWFZb3cybW9iQW5KYTlOU0xKK1FHc2pPUW1MUE9JRU5zTXN1Rg==')
encrypted_iv = base64.b64decode('J31SrExr7KKIOertYIPhpQ==')

# First need to encrypted key that uses the local key as the passphrase
cipher_key = AES.new(pad(localKey,16), AES.MODE_CBC, localIv)
decrypted_key = cipher_key.decrypt(encrypted_key)

# Then decrypted the final value using the newly decrypted key
cipher_key = AES.new(unpad(decrypted_key,16), AES.MODE_CBC, encrypted_iv)
decrypted_value = cipher_key.decrypt(encrypted_value)
  • 1 respostas
  • 71 Views
Martin Hope
Simon Elms
Asked: 2025-04-28 19:32:17 +0800 CST

Crie uma instância no PowerShell de um tipo .NET sem um construtor

  • 9

Tenho um script do PowerShell para configurar um site no IIS. Ele inclui as seguintes funções:

function Set-IisWebsiteBinding (
    [Parameter(Mandatory = $true)]
    [string]$SiteName, 
    
    [Parameter(Mandatory = $true)]
    [Microsoft.Web.Administration.Site]$Website,
    
    [Parameter(Mandatory = $true)]
    [array]$WebsiteBindingSettings
)
{
    # Set up website bindings ...
}

Estou tentando escrever testes para a função no Pester. Gostaria de criar um objeto fictício $Website para passar para a função em teste. O problema é que o Microsoft.Web.Administration.Sitetipo não tem construtor. Como posso criar um objeto do tipo Microsoft.Web.Administration.Siteno PowerShell se ele não tem construtor?

Eu poderia criar um via , IISServerManager.Sites.CreateElement()mas gostaria de evitar ter que depender do uso de um IISServerManager. Alternativamente, eu poderia me livrar da coerção de tipo para o parâmetro de função $Website, para permitir que o código de teste passasse uma tabela de hash em vez de um objeto Microsoft.Web.Administration.Site. No entanto, prefiro manter a coerção de tipo para que fique óbvio para os futuros mantenedores do script qual $Websiteé o tipo do objeto.

Existe alguma maneira de contornar essa falta de um construtor sem usar um real IISServerManagerou remover a coerção de tipo?

powershell
  • 1 respostas
  • 92 Views
Martin Hope
Andrei
Asked: 2025-04-28 18:14:09 +0800 CST

Qual é a complexidade de tempo de LINQ Order()/OrderBy() seguido por Take(k)?

  • 9

Qual é a complexidade de tempo do seguinte código em C#?

array.Order().Take(k).ToArray();

O LINQ tratará isso como QuickSelect? Ou realizará uma ordenação completa de arrays com complexidade O(n log n) ?

c#
  • 2 respostas
  • 119 Views
Martin Hope
Jan Krupiński
Asked: 2023-09-19 22:36:00 +0800 CST

Posso usar o nome da propriedade do objeto como um valor de string no objeto?

  • 10

Posso usar o nome da propriedade do objeto como um valor de string no objeto? Quer dizer, quero conseguir isso:

type MyObjectType = /* ... */

const myValidObject: MyObjectType = {
  a: 'a',
  b: 'b'
} // valid object of type MyObjectType

const myInvalidObject: MyObjectType = {
  a: 'a',
  b: 'c'
} // invalid object of type MyObjectType, property b should have value 'b'

Eu tentei algo assim, mas não funciona:

type MyObjectType = {
  [K: string]: `${K}`
}
typescript
  • 1 respostas
  • 34 Views
Martin Hope
dscerutti
Asked: 2023-09-02 01:59:47 +0800 CST

Esta conversão bit a bit é segura?

  • 10

Tenho uma situação em que preciso agrupar 16 bits em um número de 64 bits e depois lê-los como um número inteiro assinado no intervalo [ -32768, 32768 ). O método que escolhi para isso é calcular o número como um int assinado de 16 bits, convertê-lo imediatamente em um int não assinado de 16 bits e, em seguida, fazer o upcast para um int não assinado de 64 bits antes de executar a mudança de bit adequada para obter os 16 bits críticos no lugar apropriado.

Aqui está o pseudocódigo para criar o arranjo compactado de bits:

Given int x, y such that x - y >= -32768 and y - x < 32768;
const int MASK_POS = 45;
const unsigned short int u_s = x - y;
unsigned long long int ull_s = u_s;
ull_s <<= MASK_POS;

Aqui está o pseudocódigo para extrair a diferença nos números originais:

Given unsigned long long int ull_s with 16 bits encoding a signed integer in the 46th through 61st bits;
const unsigned short int u_s = ((ulls >> MASK_POS) & 0xffff);
const short int s_s = u_s;
const int difference_x_and_y = s_s;

Esta me parece uma maneira razoável de empacotar um número inteiro assinado e extraí-lo. Desconfio do comportamento específico da plataforma ao realizar mudanças de bits em números inteiros negativos, mas acho que converter para a forma não assinada do mesmo número de bits antes de atualizar o número de bits gerais no número e, ao contrário, extrair o não assinado inteiro com comprimento de bit desejado antes de converter para um inteiro com sinal de tamanho igual, será seguro.

(Caso alguém esteja curioso, haverá MUITO coisa acontecendo nos outros 48 bits desse número inteiro não assinado de 64 bits em que o material acaba - dos três bits mais altos aos 31 mais baixos e aos 14 do meio, tudo foi analisado. Certamente posso escrever alguns testes de unidade para garantir que esse comportamento se mantenha em qualquer arquitetura, mas se alguém puder ver uma falha agora, é melhor saber com antecedência. Obrigado!)

c++
  • 1 respostas
  • 86 Views
Martin Hope
Sz.
Asked: 2023-08-31 05:46:21 +0800 CST

Construção assombrada std::vector

  • 10

Você consegue adivinhar a saída deste programa trivial?

#include <vector>
#include <string>
#include <exception>
#include <iostream>
using namespace std;

int main()
{
    try { 
        struct X {
            explicit X(int) {}
            X(string) {} // Just to confuse you more...
        };
        vector<X>{"a", "b"};
    } catch (exception& x) {
        cerr << x.what();
    }
}

Bem, eu não poderia, o que me custou um dia de "pesquisa", antes de chegar aqui, finalmente destilando-o de algum código complexo da vida real (com aliases de tipo em todos os lugares, anon. uniões com não-membros do POD e mão- ctors/dtors orquestrados etc., apenas para dar uma vibe).

E... ainda não consigo ver o que está acontecendo! Alguém pode dar uma dica gentil? (Espero que seja apenas um ponto cego. Não faço mais C++ profissionalmente.)

/W4Nota: compilação limpa* com MSVC e GCC (mais recentes) -Wall; mesma saída em ambos (semanticamente).

* Mesmo sem a linha "confundir o leitor". Acho que vou ter pesadelos.


(Por favor, tenha paciência comigo por tentar não estragar tudo, explicando tudo ainda mais - afinal, isso é realmente autoexplicativo como está, certo? Exceto, exatamente o oposto para mim...)

c++
  • 1 respostas
  • 71 Views
Martin Hope
VIAGC
Asked: 2023-08-27 14:18:10 +0800 CST

Criando um gráfico usando lista de adjacências

  • 10

Estou seguindo o Manual de Design de Algoritmo v3 da Skiena.

Tenho visto algumas perguntas afirmando que há certos erros de digitação no livro e não tenho certeza se é um deles ou apenas porque não consigo entendê-los.

Considere o seguinte:

typedef struct edgenode {
    int y;                   /* adjacency info */
    int weight;              /* edge weight, if any */
    struct edgenode *next;   /* next edge in list */
} edgenode;

typedef struct {
    edgenode *edges[MAXV+1];  /* adjacency info */
    int degree[MAXV+1];       /* outdegree of each vertex */
    int nvertices;            /* number of vertices in the graph */
    int nedges;               /* number of edges in the graph */
    int directed;             /* is the graph directed? */
} graph;

void insert_edge(graph *g, int x, int y, bool directed) {
    edgenode *p;        /* temporary pointer */

    p = malloc(sizeof(edgenode));    /* allocate edgenode storage */

    p->weight = 0;
    p->y = y;
    p->next = g->edges[x];

    g->edges[x] = p;    /* insert at head of list */

    g->degree[x]++;

    if (!directed) {
        insert_edge(g, y, x, true);
    } else {
        g->nedges++;
    }
}

Pelo que entendi, void insert_edge(graph *g, int x, int y, bool directed)conecta dois nós no índice do array xe yos adiciona ao edgesarray.

O seguinte trecho me confunde:

p->y = y;
p->next = g->edges[x];

g->edges[x] = p;    /* insert at head of list */

Como isso está funcionando? Suponha que minha entrada seja x = 3, y = 4e esta seja a primeira entrada.

Eu esperaria algo parecido 3 -> 4com um gráfico direcionado.

  1. p->y = y;faz todo o sentido, o adjacente de xé y.
  2. p->next = g->edges[x];Mas a edgesmatriz é inicializada como nula. Isso não fará 3.next == NULLem vez de 3.next == 4?
  3. g->edges[x] = p;O que? edges[x] == x Node, isso me confunde.

O código completo pode ser encontrado em graph.c e graph.h .

Acho que p.next = y;de alguma forma e y.next = NULLa partir de agora, ou seja, a primeira inserção. Talvez seja meu C enferrujado, mas preciso de ajuda nisso.

c
  • 1 respostas
  • 52 Views
Martin Hope
Brass P.
Asked: 2023-08-27 04:49:15 +0800 CST

Evite repetir a mesma variável em uma cadeia de condições

  • 10

Eu tenho um script com uma condicional e uma pilha de verificações usando a mesma variável. Algo semelhante a isto:

my $size = "123B";
say "OK" if $size ~~ Str && $size.ends-with("B") && $size.chop >= 0;

Seria possível reescrever a linha de forma a evitar a repetição de $size?. Pensei em algo como junções que não tenho ideia de como aplicar a isso. Ou talvez outra coisa, mas mais curta da minha linha.

raku
  • 2 respostas
  • 75 Views
Martin Hope
fnmps
Asked: 2023-08-20 02:30:55 +0800 CST

Conjunto de caracteres não presente no JDK usado

  • 10

Tenho um sistema java comunicando que serve como gateway para diversos sistemas (java, mainframe, etc). Este sistema java recebe uma requisição usando, por exemplo, utf8 e a converte para a codificação do alvo

Conversão de conjunto de caracteres

O problema é que existe um sistema de mainframe que está usando essa codificação obscura que não está disponível com o JDK que estamos usando (esse charset sendo o IBM-924 que é um "derivado" do IBM-1047 https: //en.wikibooks .org/wiki/Character_Encodings/Code_Tables/EBCDIC/EBCDIC_1047 ). sistema.

Pelo que vi esse charset parece vir apenas com o IBM JDK, que não é aquele que usamos ou queremos usar.

Existe uma maneira de incorporar este charset específico presente no IBM JDK em, por exemplo, um openjdk? Se não, existe alguma alternativa além de criar o charset manualmente? E em caso afirmativo, existe uma maneira de reutilizar a codificação IBM-1047 e substituir os 11 caracteres que não correspondem?

Tentei incorporar os charsets usando o charsets.jar presente no IBM JDK, mas dá problemas porque esse jar tem uma dependência de classes presentes apenas no rt.jar do IBM JDK, e com certeza não gostaria substitua o rt.jar, pois pode causar efeitos colaterais indesejados.

java
  • 1 respostas
  • 57 Views
Martin Hope
Sri
Asked: 2023-08-18 00:18:53 +0800 CST

Como adicionar prefixo/sufixo em uma chave de dicionário repetível em Python

  • 10

Você poderia sugerir alguma maneira de manter todas as chaves repetíveis (duplicadas) adicionando prefixo ou sufixo. No exemplo abaixo, a chave de endereço é duplicada 3 vezes. Pode variar (1 a 3 vezes). Eu quero obter a saída como na saída esperada com a adição de um sufixo para tornar a chave exclusiva. Atualmente, a função de atualização está substituindo o valor da chave.

list = ['name:John','age:25','Address:Chicago','Address:Phoenix','Address:Washington','email:[email protected]']
dic = {}
for i in list:
    j=i.split(':')
    dic.update({j[0]:j[1]})
print(dic)

Saída atual: {'nome': 'João', 'idade': '25', 'Endereço': 'Washington', 'email': 'Joã[email protected]'}

Saída esperada: {'name': 'John', 'age': '25', 'Address1': 'Chicago', 'Address2': 'Phoenix', 'Address3': 'Washington', 'email': 'John @email.com'}

Tentei o abaixo:

list = ['name:John','age:25','Address:Chicago','Address:Phoenix','Address:Washington','email:[email protected]']
dic = {}
for i in list:
    j=i.split(':')
    dic.update({j[0]:j[1]})
print(dic)

Saída esperada: {'name': 'John', 'age': '25', 'Address1': 'Chicago', 'Address2': 'Phoenix', 'Address3': 'Washington', 'email': 'John @email.com'}

python
  • 4 respostas
  • 48 Views
Prev
Próximo

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