Let any visitors delete a post if they know Id nr & password?

I assume that you are using WordPress.

You can do the following things alternatively :
While the user is creating a post, allot them a [post_id] and [password]/[hash/key] whatever.
When they will comeback and try to delete ask them for the id and password/hash to delete.

By using get_the_ID you can display the post id.
And hash can be created wp_generate_password function.
Also you have to use add_post_meta to save the hash.
In this example the delete form is always visible you can use additional js and css to hid this and visible on click.

SOLUTION

//FUNCTION TO INSERT DELETE FORM AFTER EVERY POST.

function auto_insert_after_post($content){
    if (is_single()) {
        $content .= '
            <form action="'. esc_url( admin_url("admin-post.php") ) .'" method="post">
                <input type="text" name="aid" required>
                <input type="text" name="hash" required>
                <input type="hidden" name="action" value="hash_auth">
                <input type="submit" name="submit" value="Delete">
            </form>
        ';
        $content .= "value:".get_post_meta( get_the_ID(), "delete_auth_key", true );
    }
    return $content;
}

//FUNCTION TO GENERATE A POST HASH/PASSWORD DURING POST CREATION.

function generate_post_hash($id, $post){
    $hash_key = "delete_auth_key";
    $hash = wp_generate_password(10);
    add_post_meta($id, $hash_key, $hash);
}

//AUTHENTICATE AND DELETE POST

function delete_hash_auth(){
    //check if form fields are filled
    if(!empty($_POST['aid']) && !empty($_POST['hash'])){
        $aid = $_POST['aid'];
        $hash = $_POST['hash'];
        $auth_hash = get_post_meta($aid, "delete_auth_key", true);
        //check if the hash and the post id matches
        if(get_post($aid) && $auth_hash == $hash){
            //check if auth_hash matches hash
            wp_delete_post($aid);
        }
        else{
            echo "Please enter correct post id and hash!";
        }
    }
    else{
        echo "Empty fields not allowed!";
    }
    
}
add_action( 'admin_post_nopriv_hash_auth', 'delete_hash_auth', 10);
add_action( 'admin_post_hash_auth', 'delete_hash_auth', 10 );
add_action( "publish_post", "generate_post_hash", 20, 2 );
add_filter( "the_content", "auto_insert_after_post" );

IMPLEMENT USING PLUGIN

These are the steps to implement using a plugin or you can simply download this plugin I have written. Download Frontend Delete

If you downloaded the plugin.

  1. Go to Dashboard > Plugin > Add New
  2. Upload the downloaded zip.
  3. Activate the plugin.
  4. Done.

If you wanna write it the please follow the steps:

  1. Create a Directory frontend-del in wp-content/plugins folder
  2. Create frontend-del.php inside that folder.
  3. Paste this code below.

/*
Plugin Name: frontend-del
Plugin URI: https://www.wordpress.org
Description: Enable frontend delete.
Version: 1.0
Author: Behemoth
Author URI: https://wordpress.stackexchange.com/users/188582/behemoth
License: GPLv2 or later
*/

function delete_hash_auth(){
    
//check if form fields are filled
if(!empty($_POST['aid']) && !empty($_POST['hash'])){
    $aid = $_POST['aid'];
    $hash = $_POST['hash'];
    $auth_hash = get_post_meta($aid, "delete_auth_key", true);
    //check if the hash and the post id matches
    if(get_post($aid) && $auth_hash == $hash){
        //check if auth_hash matches hash
        wp_delete_post($aid);
    }
    else{
        echo "Please enter correct post id and hash!";
    }
}
else{
    echo "Empty fields not allowed!";
}

  }

add_action( 'admin_post_nopriv_hash_auth', 'delete_hash_auth', 10);
add_action( 'admin_post_hash_auth', 'delete_hash_auth', 10 ); 
function generate_post_hash($id, $post){
    $hash_key = "delete_auth_key";
    $hash = wp_generate_password(10);
    add_post_meta($id, $hash_key, $hash);
}
add_action( "publish_post", "generate_post_hash", 20, 2 );
function auto_insert_after_post($content){
    if (is_single()) {
        $content .= '
            <form action="'. esc_url( admin_url("admin-post.php") ) .'" method="post">
                <input type="text" name="aid" required>
                <input type="text" name="hash" required>
                <input type="hidden" name="action" value="hash_auth">
                <input type="submit" name="submit" value="Delete">
            </form>
        ';
        $content .= "value:".get_post_meta( get_the_ID(), "delete_auth_key", true );
    }
    return $content;
}
add_filter( "the_content", "auto_insert_after_post" );
  1. Do not skip the above comment line. and place the whole thing inside <?php ... ?>.
  2. Save it and go to your WordPress Dashboard > plugin and activate the frontend del plugin

CONCLUSION

This is a basic solution you can customise it to fit your needs. For example you may need a ajax submission or redirect it to your desired page.
Also you can further implement this using object oriented concepts.