Pergunta

Estou usando C# e .NET 2.0. Meu aplicativo precisa de alguma maneira de verificar os diferentes usuários, então vou usar o ID de hardware, mas vi que só posso usar:

  • Endereço MAC - facilmente mutável e nem todo mundo tem // não
  • ID do processador - usando o WMI, ele retorna um valor para o modelo da CPU, não é único // não
  • Serial da placa -mãe - nem toda placa -mãe tem // não
  • A série de volume do Windows - não tenho certeza se será alterado no Windows reinstala e formato do volume

Então, há algo que eu não mencionei para Hwid? Eu quero algo que todo mundo tenha e não será apagado no Windows reinstala. Caso contrário, eu teria que usar o número de série do volume do Windows.


EDIT: A partir dos comissões, acho melhor usar o ID do disco rígido. Como conseguir isso? Edit2: Acabei de ler que as unidades SCSI não têm série. Isso é verdade?

Edição final: já estou usando a serial da unidade raiz no meu aplicativo. Funciona muito bem. Obrigado a todos.

Foi útil?

Solução

HDD Número de série: único, imutável, e todos os têm.

Não é uma opção perfeita, mas ...

Outras dicas

Bem, eu iria para mais de um ID. Se você combinar IDs suficientes, eles lhe darão singularidade suficiente.

EDIT: Você também pode ir para o local no disco rígido que seu programa também foi instalado (prato, cilindro etc.)

Por que você deseja usar o ID de hardware? Eu iria com algum tipo de segurança baseada em formas (ou baseada em anúncios).

Dado isso, no entanto: a coisa sobre o HWID é que ele identifica essa configuração específica do computador: foi projetado para alterar se houver alterações no sistema. Você menciona que o volume do Windows serial poderia mudar para reinstalar e reformar, mas seu software também não deve ser reinstalado naquele momento? O HDD serial também pode mudar se, digamos, o usuário trocar HDDs por algum motivo.

Se você precisar usar o HWID, provavelmente precisará selecionar um (ou mais) das opções disponíveis para fornecer exclusividade e codificar ou informar os usuários sobre alterações de hardware que exigem uma reinstalação e/ou reconfiguração do seu software .

O endereço MAC não é muito confiável. Você deve usar algo que não pode ser alterado como ID da CPU ou ID do HDD.

Aqui está o desejo, quero dizer:
http://www.soft.tahionic.com/download-hdd_id/index.html
http://www.soft.tahionic.com/download-hdd_id/hardware%20id%20Progrmer%27s%20dll.html


E para responder à sua pergunta, sim, o SCSI não possui um ID de hardware.

Você precisa pensar em segurança ou apenas confiabilidade, ou seja, o usuário deseja adulterar sua verificação de identificação? Se você precisar de segurança (alta), compre um dos produtos de "proteção de software", isso é muito mais barato do que fazer você mesmo.

Não é necessária alta segurança? => Outra possibilidade é usar o usuário ou a máquina SID. Você deve levar em consideração que seu aplicativo é executado elvated => Usuário é administrador então.

Por último, mas não menos importante: escreva um valor aleatório de alguns bytes no registro (possivelmente em vários lugares) sob hkey_current_user e use -os como um ID.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top