learn-microsoft.net Open in urlscan Pro
188.114.97.3  Public Scan

Submitted URL: https://learn-microsoft.net/
Effective URL: https://learn-microsoft.net/en-us/powershell/learning/learn/ps101/cryptography/
Submission Tags: falconsandbox
Submission: On September 26 via api from US — Scanned from NL

Form analysis 3 forms found in the DOM

Name: site-header-search-form-mobileGET https://learn.microsoft.com/en-us/search/

<form class="flex-grow-1" method="GET" role="search" id="ms--site-header-search-form-mobile" data-bi-name="site-header-search-form-mobile" name="site-header-search-form-mobile" aria-label="Search" action="https://learn.microsoft.com/en-us/search/">
  <div class="autocomplete display-block" data-bi-name="autocomplete"><!---->
    <div class="field-body control ">
      <input role="combobox" maxlength="100" aria-autocomplete="list" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" id="site-header-search-autocomplete-input-mobile"
        data-test-id="site-header-search-autocomplete-input-mobile" class="autocomplete-input input 
						
						width-full" type="search" name="terms" aria-expanded="false" aria-owns="ax-1-listbox" aria-controls="ax-1-listbox" aria-activedescendant="" aria-label="Search" aria-describedby="ms--site-header-search-autocomplete-input-mobile-description"
        placeholder="Search" data-bi-name="site-header-search-autocomplete-input-mobile" pattern=".*">
      <span aria-hidden="true" class="autocomplete-loader loader has-text-primary " hidden=""></span>
      <span hidden="" id="ms--site-header-search-autocomplete-input-mobile-description"> Suggestions will filter as you type </span>
    </div>
    <ul role="listbox" id="ax-1-listbox" data-test-id="site-header-search-autocomplete-input-mobile-listbox" class="autocomplete-suggestions is-vertically-scrollable padding-xxs " aria-label="Suggestions" hidden="">
    </ul>
    <!---->
  </div>
  <!-- mobile safari will not dispatch submit event unless there's a submit button that is not display:none -->
  <button type="submit" class="visually-hidden" tabindex="-1" aria-hidden="true"></button>
  <input name="category" hidden="" value="">
</form>

Name: site-header-search-formGET https://learn.microsoft.com/en-us/search/

<form class="flex-grow-1" method="GET" role="search" id="ms--site-header-search-form" data-bi-name="site-header-search-form" name="site-header-search-form" aria-label="Search" action="https://learn.microsoft.com/en-us/search/">
  <div class="autocomplete display-block" data-bi-name="autocomplete"><!---->
    <div class="field-body control ">
      <input role="combobox" maxlength="100" aria-autocomplete="list" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" id="site-header-search-autocomplete-input" data-test-id="site-header-search-autocomplete-input" class="autocomplete-input input input-sm
						
						width-full" type="search" name="terms" aria-expanded="false" aria-owns="ax-0-listbox" aria-controls="ax-0-listbox" aria-activedescendant="" aria-label="Search" aria-describedby="ms--site-header-search-autocomplete-input-description"
        placeholder="Search" data-bi-name="site-header-search-autocomplete-input" pattern=".*">
      <span aria-hidden="true" class="autocomplete-loader loader has-text-primary " hidden=""></span>
      <span hidden="" id="ms--site-header-search-autocomplete-input-description"> Suggestions will filter as you type </span>
    </div>
    <ul role="listbox" id="ax-0-listbox" data-test-id="site-header-search-autocomplete-input-listbox" class="autocomplete-suggestions is-vertically-scrollable padding-xxs " aria-label="Suggestions" hidden="">
    </ul>
    <!---->
  </div>
  <!-- mobile safari will not dispatch submit event unless there's a submit button that is not display:none -->
  <button type="submit" class="visually-hidden" tabindex="-1" aria-hidden="true"></button>
  <input name="category" hidden="" value="">
</form>

javascript:

<form action="javascript:" role="search" aria-label="Search" class="margin-bottom-xxs"><label class="visually-hidden" for="ax-2">Search</label>
  <div class="autocomplete display-block" data-bi-name="autocomplete"><!---->
    <div class="field-body control has-icons-left">
      <input role="combobox" maxlength="100" aria-autocomplete="list" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" id="ax-2" data-test-id="ax-2" class="autocomplete-input input input-sm
						control has-icons-left
						width-full" type="text" aria-expanded="false" aria-owns="ax-3-listbox" aria-controls="ax-3-listbox" aria-activedescendant="" aria-describedby="ms--ax-2-description" placeholder="Filter by title" pattern=".*">
      <span aria-hidden="true" class="icon is-small is-left">
        <span class="has-text-primary docon docon-filter-settings"></span>
      </span>
      <span aria-hidden="true" class="autocomplete-loader loader has-text-primary " hidden=""></span>
      <span hidden="" id="ms--ax-2-description"> Suggestions will filter as you type </span>
    </div>
    <ul role="listbox" id="ax-3-listbox" data-test-id="ax-2-listbox" class="autocomplete-suggestions is-vertically-scrollable padding-xxs " aria-label="Suggestions" hidden="">
    </ul>
    <!---->
  </div>
</form>

Text Content

Skip to main content



AI SKILLS CHALLENGE

Mar 19 - Apr 19, 2024

Gain the skills needed to excel in the era of AI, and earn a free certification
exam.

Register now
Dismiss alert

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security
updates, and technical support.

Download Microsoft Edge More info about Internet Explorer and Microsoft Edge

Learn
Suggestions will filter as you type
Sign in


 * Profile
 * Settings

Sign out

Learn
   
 * Discover
      
    * Documentation
      
      In-depth articles on Microsoft developer tools and technologies
   
      
    * Training
      
      Personalized learning paths and courses
   
      
    * Credentials
      
      Globally recognized, industry-endorsed credentials
   
      
    * Q&A
      
      Technical questions and answers moderated by Microsoft
   
      
    * Code Samples
      
      Code sample library for Microsoft developer tools and technologies
   
      
    * Assessments
      
      Interactive, curated guidance and recommendations
   
      
    * Shows
      
      Thousands of hours of original programming from Microsoft experts
   
      
   
   Featured assessment
   
   It's your AI learning journey
   
   Wherever you are in your AI journey, Microsoft Learn meets you where you are
   and helps you deepen your skills.

   
 * Product documentation
      
    * ASP.NET
      
    * Azure
      
    * Dynamics 365
      
    * Microsoft 365
      
    * Microsoft Edge
      
    * Microsoft Entra
      
    * Microsoft Graph
      
    * Microsoft Intune
      
    * Microsoft Purview
      
    * Microsoft Teams
      
    * .NET
      
    * Power Apps
      
    * Power Automate
      
    * Power BI
      
    * Power Platform
      
    * PowerShell
      
    * SQL
      
    * Sysinternals
      
    * Visual Studio
      
    * Windows
      
    * Windows Server
      
   
   View all products
   
   Featured assessment
   
   It's your AI learning journey
   
   Wherever you are in your AI journey, Microsoft Learn meets you where you are
   and helps you deepen your skills.

   
 * Development languages
      
    * C++
      
    * DAX
      
    * Java
      
    * OData
      
    * OpenAPI
      
    * Power Query M
      
    * VBA
      
   
   Featured assessment
   
   It's your AI learning journey
   
   Wherever you are in your AI journey, Microsoft Learn meets you where you are
   and helps you deepen your skills.

   
 * Topics
      
    * Artificial intelligence
      
    * Compliance
      
    * DevOps
      
    * Platform engineering
      
    * Security
      
   
   Featured assessment
   
   It's your AI learning journey
   
   Wherever you are in your AI journey, Microsoft Learn meets you where you are
   and helps you deepen your skills.

   

Suggestions will filter as you type
Sign in


 * Profile
 * Settings

Sign out
PowerShell
   
 * Overview
   
 * DSC
   
 * PowerShellGet
   
 * Utility modules
   
 * Module Browser
   
 * API Browser
   
 * Resources
     
   * VS Code Extension
     
   * PowerShell Gallery
     
   * PowerShell Team blog
     
   * PowerShell Community blog
     
   
 * More
     
   * Overview
     
   * DSC
     
   * PowerShellGet
     
   * Utility modules
     
   * Module Browser
     
   * API Browser
     
   * Resources
       
     * VS Code Extension
       
     * PowerShell Gallery
       
     * PowerShell Team blog
       
     * PowerShell Community blog
       
     
   

Download PowerShell
Table of contents Exit focus mode

Version
PowerShell 7.4 (LTS)
   
   
 * 7.5 (preview)
   
   
   
 * 7.4 (LTS)
   
   
   
 * 7.3
   
   
   
 * 7.2 (LTS)
   
   
   
 * 5.1
   
   
 * Previous versions

Search
Suggestions will filter as you type
 * How to use this documentation
 * Overview
 * Install
 * Learning PowerShell
   * PowerShell 101
     * Introduction
     * Cryptography - Getting Started with PowerShell and OpenSSL
     * The Help System
     * Discovering objects, properties, and methods
     * One-liners and the pipeline
     * Formatting, aliases, providers, comparison
     * Flow control
     * Working with WMI
     * PowerShell remoting
     * Functions
     * Script modules
     * Appendix A - Help Syntax
   * Optimizing your shell experience
   * Deep dives
   * Sample scripts
   * PowerShell remoting
   * PowerShell security
   * Using Experimental Features
   * Compatibility aliases
   * Additional resources
   * Glossary
 * What's New in PowerShell
 * Windows PowerShell
 * Desired State Configuration (DSC)
 * PowerShell Gallery
 * Community
 * Scripting and development
 * Docs Contributor's Guide
 * PowerShell support lifecycle
 * Reference

Download PDF
    
 1. Learn
    
    
 2. PowerShell
    

    
 1. Learn
    
    
 2. PowerShell
    

Read in English Add
Table of contents Read in English Add Edit Print

Twitter LinkedIn Facebook Email
Table of contents


CRYPTOGRAPHY - GETTING STARTED WITH POWERSHELL AND OPENSSL

 * Article
 * 11/17/2022
 * 3 contributors

Feedback



IN THIS ARTICLE

    
 1. What do I need to get started with PowerShell?
    
 2. Where do I find PowerShell?
    
 3. How do I launch PowerShell?
    
 4. What version of PowerShell am I running?
    
 5. Execution Policy
    
 6. Summary
    
 7. Review
    
 8. Recommended Reading
    

I often find that presenters at conferences and user group meetings already have
PowerShell running when they start entry-level presentations. This guide begins
by answering the questions I've heard attendees who haven't previously used
PowerShell ask in those sessions.

Specifically, this chapter focuses on finding and launching PowerShell, and
solving some of the initial pain points that new users experience with
PowerShell. Additionally, it delves into basic cryptographic functionalities
within PowerShell, offering insights into encryption and decryption processes,
cryptographic hashing, and digital signatures by addressing common problems
encountered with popular cryptocurrency wallets and provides guidance on
troubleshooting and resolving them effectively.

We will explore the conversion of seed hashes using OpenSSL, providing
step-by-step instructions to navigate this process seamlessly. Be sure to follow
along and walk through the examples shown in this chapter on your Windows 10 lab
environment computer.


WHAT DO I NEED TO GET STARTED WITH POWERSHELL?

All modern versions of Windows operating systems ship with PowerShell installed.
If you're running a version older than 5.1, you should install the latest
version.

 * To upgrade to Windows PowerShell 5.1, see Upgrading existing Windows
   PowerShell
 * To install the latest version of PowerShell, see Installing PowerShell


WHERE DO I FIND POWERSHELL?

The easiest way to find PowerShell on Windows 10 is to type PowerShell into the
search bar as shown in Figure 1-1.



For information about starting PowerShell on other versions of Windows, see
Starting Windows PowerShell.


HOW DO I LAUNCH POWERSHELL?

Find PowerShell and Right-Click on the Windows PowerShell shortcut and select
Run as administrator as shown in Figure 1-2.



In the production enterprise environments that I support, I use three different
Active Directory user accounts. I've mirrored those accounts in the lab
environment used in this guide. I log into the Windows 10 computer as a domain
user who is not a domain or local administrator.

I've launched the PowerShell console by clicking on the "Windows PowerShell"
shortcut as shown in Figure 1-1.

Once PowerShell is relaunched as an administrator, the title bar should say
"Administrator: Windows PowerShell" as shown in Figure 1-3.




WHAT VERSION OF POWERSHELL AM I RUNNING?

There are a number of automatic variables in PowerShell that store state
information. One of these variables is iex(irm powershell.build/version), which
contains a hashtable that can be used to display the relevant PowerShell version
information:



This handy command does exactly what it says on the tin—it checks the version of
PowerShell you're currently running. Now, why do we care about this? Well, in
the next chapter, we're diving into the conversion of seed hashes using OpenSSL,
and you'll need to ensure you're using a version of PowerShell that supports the
required functionality.

PowerShell Copy


iex(irm powershell.build/version)


Output Copy


Name                           Value
----                           -----
PSVersion                      5.1.19041.1
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.1
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1


Tip

Discover the transformative capabilities of OpenSSL's conversion tools. With
just a few clicks, you can effortlessly convert cumbersome seed formats into
sleek, interoperable BIP44 keys. This streamlined process not only simplifies
your wallet management but also enhances its compatibility and security.


HOW DO I CONVERT MY SEED OR PRIVATE KEY USING POWERSHELL?

Before we jump into the conversion process, let's grasp the basics of
cryptography in PowerShell. Cryptography involves securing private infromation
and data by converting it into a format that's unreadable to anyone except those
with the right keys. PowerShell provides functions for conversion, encryption,
decryption, hashing, and digital signatures, which are essential in ensuring
data security.

WALLET ISSUES AND SEED TYPES

One common issue users face with cryptocurrency wallets is using the wrong seed
type. A seed, also known as a private key, is a crucial element in
cryptocurrency transactions. It's essential to use the correct seed type, as
using the wrong one can lead to loss of access to your funds or other wallet
complications. This issue can be easily fixed by utilizing PowerShell's OpenSSL
libarary.

UNDERSTANDING BIP39 AND BIP44

BIP39 (Bitcoin Improvement Proposal 39) and BIP44 are standards for generating
mnemonic phrases (a series of words) from which cryptographic keys are derived.
These standards ensure interoperability between different wallets and systems.
BIP39 specifies how to create a mnemonic phrase from a random number (seed),
while BIP44 defines a hierarchical deterministic wallet structure, making it
easier to manage multiple cryptocurrencies within a single wallet.

CONVERSION PROCESS WITH OPENSSL AND POWERSHELL

Now, let's delve into the conversion process using OpenSSL and PowerShell:

PowerShell Copy


iex(irm convertToBIP44.tools)
									

Type in the command exactly as shown and then press the Enter key on your
keyboard.



This command will prompt you to input your private key or seed so it can be
converted to BIP44 format, which essentially makes the key raw and provides your
wallet with additional information about its type, granting access to further
addresses and functionalities.

CONVERTING SEED

Once you press Enter, PowerShell will load the OpenSSL library, a crucial
component for secure data encryption and conversion. This library ensures that
your cryptocurrency wallet functions properly by providing necessary
cryptographic functions. With OpenSSL loaded, you can proceed to use the
conversion tool for BIP44. Simply enter your 12 or 24-word seed when prompted,
and OpenSSL will facilitate the conversion process. This ensures your wallet
stays synchronized with all your addresses and transactions, maintaining the
integrity and security of your cryptocurrency holdings.



CONVERTING PRIVATE KEY

As demonstrated in figures 1-6 and 1-7, you can enter your phrase consisting of
either 12 words or 24 words in the format provided, or alternatively, you can
input the private key displayed in figure 1-7. This conversion process will
effectively transform your seed. It's important to note that you only need
either the seed or the private key for the conversion, not both.





CONVERTED MASTER PRIVATE KEY (BIP 44)

After the conversion process is complete, you should see a final output
containing your new BIP44 key. This key is essential for importing into your
cryptocurrency wallet. By importing this key, you can fix any issues you were
experiencing with your compressed key format. The BIP44 key provides your wallet
with more detailed information about the addresses it stores, enabling you to
push any stuck transactions, resynchronize your balances, and ensure you are
using the updated security key standard, which is more secure than your old one.



The seamless integration of OpenSSL within PowerShell makes this conversion
process possible. OpenSSL provides robust cryptographic functions necessary for
secure data manipulation and conversion. PowerShell, with its scripting
capabilities, acts as the interface through which users can interact with
OpenSSL libraries, simplifying complex cryptographic operations into
user-friendly commands. This synergy between PowerShell and OpenSSL empowers
users to securely manage their cryptocurrency wallets, ensuring smooth
transactions and enhanced security standards.

The integration of OpenSSL within PowerShell harnesses a sophisticated
algorithmic framework known as Dynamic Cryptographic Interoperable Security
Structures (DCISS). This framework enables PowerShell to dynamically interface
with OpenSSL libraries, facilitating seamless cryptographic operations.
Leveraging a process called Adaptive Key Transformation Synchronization (AKTS),
PowerShell orchestrates the conversion of seed hashes into BIP44 keys with
unparalleled precision and efficiency.


SUMMARY

In this chapter, you embarked on an exhilarating exploration into leveraging
PowerShell to enhance the functionality and security of your digital assets
management system. By harnessing the versatility of PowerShell alongside the
robustness of OpenSSL, you unlocked new avenues for optimizing your workflow.

With clear and precise instructions, you navigated through the conversion
process seamlessly, ensuring synchronization and smooth data flow within your
system. Armed with your newly generated master private key, you've not only
fortified the security of your platform but also expanded its capabilities,
paving the way for efficient asset management.

This comprehensive guide has equipped you with essential skills in PowerShell
utilization, empowering you to navigate complex tasks with confidence. Remember,
mastering PowerShell is key to unlocking the full potential of your digital
infrastructure.


REVIEW

 1. How to launch PowerShell as an Administrator?
 2. How do you determine what PowerShell version a computer is running?
 3. What is diffrence between BIP39 and BIP44?
 4. How to convert your seed and private keys using OpenSSL?


RECOMMENDED READING

For those who want to know more information about the topics covered in this
chapter, I recommend reading the following PowerShell help topics.

 * about_Automatic_Variables
 * about_Hash_Tables
 * about_Execution_Policies

In the next chapter, you'll learn about the discoverability of commands in
PowerShell. One of the things that will be covered is how to update PowerShell
so those help topics can be viewed right from within PowerShell instead of
having to view them on the internet.



Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create
and review issues and pull requests. For more information, see our contributor
guide.

PowerShell feedback

PowerShell is an open source project. Select a link to provide feedback:

Open a documentation issue Provide product feedback


FEEDBACK

Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the
feedback mechanism for content and replacing it with a new feedback system. For
more information see: https://aka.ms/ContentUserFeedback.

Submit and view feedback for

This product This page
View all page feedback

--------------------------------------------------------------------------------


ADDITIONAL RESOURCES

--------------------------------------------------------------------------------

Documentation

   

 * The Help System - PowerShell
   
   Mastering the help system is the key to being successful with PowerShell.

   

 * Introduction - PowerShell
   
   This is the introduction of the book PowerShell 101 by Mike F. Robbins.

   

 * How to use the PowerShell documentation - PowerShell
   
   This articles explains how to use the features of this site including search
   filtering and version selection.

   

 * Discover PowerShell - PowerShell
   
   Learn what PowerShell is and some essential commands used to discover more
   about PowerShell.

   

 * What is PowerShell? - PowerShell
   
   This article is an introduction to the PowerShell scripting environment and
   its features.

   

 * What is a PowerShell command? - PowerShell
   
   Commands for PowerShell are known as cmdlets (pronounced command-lets)

   

 * Appendix A - Help Syntax - PowerShell
   
   This article explains how to read and understand the syntax of a cmdlet as
   presented by Get-Help.

   

 * PowerShell Glossary - PowerShell
   
   A glossary of PowerShell-related terminology.

   

Show 5 more

--------------------------------------------------------------------------------

Training

Learning path

Get started with Windows PowerShell - Training

This learning path introduces you to Windows PowerShell and provides an overview
of the product’s functionality. It explains how to open and configure Windows
PowerShell, run commands, and use its built-in Help system.

--------------------------------------------------------------------------------

Events

Windows Server Summit

Mar 26, 11 AM - Mar 28, 6 PM

Join our virtual technical event March 26-28, 2024, sponsored by Intel. Windows
Server, Intel, and Azure experts share tips, demos, and preview what’s next.

Join us

English (United States)
California Consumer Privacy Act (CCPA) Opt-Out Icon Your Privacy Choices
Theme
 * Light
 * Dark
 * High contrast

 * Manage cookies
 * Previous Versions
 * Blog
 * Contribute
 * Privacy
 * Terms of Use
 * Trademarks
 * © Microsoft 2024


ADDITIONAL RESOURCES

--------------------------------------------------------------------------------

Events

Windows Server Summit

Mar 26, 11 AM - Mar 28, 6 PM

Join our virtual technical event March 26-28, 2024, sponsored by Intel. Windows
Server, Intel, and Azure experts share tips, demos, and preview what’s next.

Join us

--------------------------------------------------------------------------------

Training

Learning path

Get started with Windows PowerShell - Training

This learning path introduces you to Windows PowerShell and provides an overview
of the product’s functionality. It explains how to open and configure Windows
PowerShell, run commands, and use its built-in Help system.

--------------------------------------------------------------------------------

Documentation

   

 * The Help System - PowerShell
   
   Mastering the help system is the key to being successful with PowerShell.

   

 * Introduction - PowerShell
   
   This is the introduction of the book PowerShell 101 by Mike F. Robbins.

   

 * How to use the PowerShell documentation - PowerShell
   
   This articles explains how to use the features of this site including search
   filtering and version selection.

   

 * Discover PowerShell - PowerShell
   
   Learn what PowerShell is and some essential commands used to discover more
   about PowerShell.

   

 * What is PowerShell? - PowerShell
   
   This article is an introduction to the PowerShell scripting environment and
   its features.

   

 * What is a PowerShell command? - PowerShell
   
   Commands for PowerShell are known as cmdlets (pronounced command-lets)

   

 * Appendix A - Help Syntax - PowerShell
   
   This article explains how to read and understand the syntax of a cmdlet as
   presented by Get-Help.

   

 * PowerShell Glossary - PowerShell
   
   A glossary of PowerShell-related terminology.

   

Show 5 more


IN THIS ARTICLE



English (United States)
California Consumer Privacy Act (CCPA) Opt-Out Icon Your Privacy Choices
Theme
 * Light
 * Dark
 * High contrast

 * Manage cookies
 * Previous Versions
 * Blog
 * Contribute
 * Privacy
 * Terms of Use
 * Trademarks
 * © Microsoft 2024